Without the jdbc_static filter this works fine.
input {
jdbc {
jdbc_driver_library => "\trunk\Installation\sqljdbc_6.4\enu\mssql-jdbc-6.4.0.jre8.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
jdbc_user => "xxxxxx"
jdbc_password => "xxxxxxx"
schedule => "13 09 * * *"
statement =>
"
SELECT DocumentCreateDateTime, DocumentSigned
FROM Document
WHERE DocumentID = 121915
"
}
}
filter {
mutate {
convert => {"documentcreatedatetime" => "string"}
}
date {
match => [ "documentcreatedatetime", "ISO8601" ]
}
xml {
source => "documentsigned"
target => "invoice"
remove_namespaces => true
xpath => [
"Invoice/ENV/Leverancier/GLN/text()", "gln",
"Invoice/DET/Artikel/ArtikelcodeLeverancier/text()", "artCodeLev"
]
}
jdbc_static {
loaders => [
{
id => "ArtikelLeverancier_id"
query => "SELECT GLN_leverancier, ArtCodeLev, Kortingsgroep FROM ArtLev ORDER BY Mutatiecode"
local_table => "ArtikelLeverancier"
}
]
local_db_objects => [
{
name => "ArtikelLeverancier"
columns => [
["GLN_leverancier", "varchar(13)"],
["ArtCodeLev", "varchar(20)"],
["Kortingsgroep", "varchar(35)"]
]
}
]
local_lookups => [
{
id => "local-servers"
query => "SELECT Kortingsgroep FROM ArtLev WHERE GLN_leverancier = ':gln' AND ArtCodeLev = ':artCode'"
parameters => {
gln => "[gln]",
artCode => "[artCodeLev]"
}
target => "kortingsgroep"
}
]
staging_directory => "/tmp/logstash/jdbc_static/import_data"
loader_schedule => "* */2 * * *"
jdbc_driver_library => "\trunk\Installation\sqljdbc_6.4\enu\mssql-jdbc-6.4.0.jre8.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string => "xxxxxxxxxxxxxxxxxxx"
jdbc_user => "xxxxxxxxxxxxxxxxx"
}
mutate {
remove_field => ["documentsigned", "documentout", "invoice"]
}
}
output {
stdout { codec => rubydebug }
}
The crash happens right in the middle of the definition of the parameters:
block in converge_state
I bet it has to do with adding two parameters. There are no examples of two parameters on the internet.