on 12-05-2012 11:19 AM
Dear All,
I have a Proxy to JDBC asynchronous scenario where I would like to send 100000 ( 1 Lakh) customer details from SAP to SQL server database table. After executing the scenario I got the following errors.
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Channel has reached maximum concurrency (5,000 concurrent messages) and no free resource found within 5,000 milliseconds; increase the maximum concurrency level
Channel has reached maximum concurrency (5,000 concurrent messages) and no free resource found within 5,000 milliseconds; increase the maximum concurrency level
Initially I have maintained Maximum concurrency = 1. After getting the error, I have changed this to 5. While communication channel monitoring, Initially it has shown only Message processing started. I was unable to see message processing completed successfully. After one hour, it has shown message processing completed successfully. Really does it take that much of time? or shall I do any other configurations? I have not maintained any poolWaitingTime under advanced mode of receiver channel configuration. This might be the problem? How many records can I send under one message by using a receiver jdbc adapter with maximum concurrency =1? Any help....
Thanking You,
Regards,
Ashok.
poolWaitingTime | 180000 |
Regards,
Raj
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for your reply.
How to increase JDBC receiver thread value?. I have created multiple JDBC receiver channels. I have 9 master detail scenarios from SAP to database. Customer execute the master detail scenarios once or twice in a day. So the channels dont have to start all the times. For this case, if I use multiple channels, is there any problem? Even if I use multiple channels, should I maintain poolWaitingTime for all the channels? Please help me.
Regards,
Ashok.
Hello Ashok,
We can increase the threade value for the channels using the property of service XI AF Core: messaging.connectionDefinition. We can also see the thread count assiged to the channels by selecting Component monitoring --> Adapter engine --> Engine status --> Additional data ,there we can see the tab of Maximum number of threads.
The default value of thread will be 5.We can increase the thread value using the property of service XI AF Core: messaging.connectionDefinition and can verify after increasing the value at Adapter engine level.
If we change above parameter it impacts for all the adapter channels
Regards
Pradeep
Though your insert volume is higher range, you can still handle with Maximum Concurrency to 5. Check with DBA that how much max connections we can establish through jdbc adapter connection pool. Time it takes purely depends on the connections that adapter creates using connection pool to the database and executes your insert statement. At runtime it is purely based on the number of free threads available to make connections from the allowed setting in the adapter. You can try configuring poolWaitingTIme too. I would recommend to study the pattern of available threads at runtime and decide changing the number of connections. Take help from Basis and DBAs. This setting might be your starting point .. example min connection=2 max= 15 maximum concurrency level = 5.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
98 | |
11 | |
11 | |
10 | |
10 | |
8 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.