Hello everyone,
I am using jdbc_static to populate my lookup table and, when I have increased my pipeline workers from 8 to 32, I am starting receiving this error:
I have read that I need to increase the max pool connection size and the pool timeout but sequel_opts are not recognized a correct parameter for jdbc_static.
Hey @Tortoise I am using a jdbc_static for data enrichment, not a jdbc input plugin, unfortunately. The jdbc_static doesn't include max_connections or connection_timeout.
So, it's not viable.
Loader on schedule, the error refers to the query to select from the memory table (talog-filter_chaincode_loading_v1.0), not the query on the SQL Server Database, that looks correct.
This is the configuration:
jdbc_static {
id => "talog-filter_jdbc_static_v1.0"
jdbc_driver_library => "C:\LS\connectors\mssql-jdbc-12.10.0.jre11.jar"
jdbc_connection_string => "connection string"
jdbc_user => "user"
jdbc_password => "password"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
loader_schedule => "*/30 * * * *"
local_db_objects => [
{
name => "localstorechaincode"
index_columns => ["rnid"]
columns => [
["rnid", "varchar(100)"],
["chaincode", "varchar(100)"]
]
}
]
loaders => [
{
id => "talog-filter_chaincode_dbquery_v1.0"
query => "select cast(s.systemcode as varchar(100)) RNID, rtrim(s.ChainCode) ChainCode
from store s
where s.CHAINCODE is not null
order by s.SYSTEMCODE"
local_table => "localstorechaincode"
}
]
local_lookups => [
{
id => "talog-filter_chaincode_loading_v1.0"
query => "select case when chaincode = 'NULL' then '' else chaincode end AS chaincode
from localstorechaincode
where rnid = :RNID"
parameters => {
RNID => "[@metadata][_account]"
}
target => "[@metadata][loadattr1]"
default_hash => {
chaincode => ""
}
}
]
add_field => { "[@metadata][wschaincode]" => "%{[@metadata][loadattr1][0][chaincode]}" }
tag_on_failure => []
tag_on_default_use => []
}
We have a bunch of subsequential errors.
When I have increased my pipeline workers from 8 to 32, I am starting receiving this error that you can see in the original message.
Well it's not obvious to me how an indexed lookup on an in-memory table could take 15 seconds. I would start looking at thread dumps to see what all the worker threads are working on. My understanding is that each worker thread has its own copy of the table, but perhaps they are all waiting on oneanother for something.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.