IBM Support

Out of Memory error and SQLException errors occur when load is high for RequestCollection Agent.

Troubleshooting


Problem

Out of Memory error and SQLException errors occur when load is high for RequestCollection Agent.

Symptom

TIME OF START FOR COLLECTIONAGENT IS: Fri Dec 7 06:00:00 EST 2001
Starting Request PRE Agent Fri Dec 7 06:00:00 EST 2001
Initializing PureEcommerce - Please wait .......
Could not use datasourcename. Trying alternate connection mechanism using JDBC URL
PureEcommerce initialization complete.
Started thread number 1
Started thread number 2
All threads started
Could not use datasourcename. Trying alternate connection mechanism using JDBC URL
Could not use datasourcename. Trying alternate connection mechanism using JDBC URL
Defaulting TotalRecs to 5000
Defaulting TotalRecs to 5000
java.lang.reflect.InvocationTargetException: java.lang.OutOfMemoryError
<<no stack trace available>>
java.sql.SQLException: Protocol violation
java.sql.SQLException: Protocol violation
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156)
at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:803)
at oracle.jdbc.ttc7.Ocommoncall.receive(Ocommoncall.java:145)
at oracle.jdbc.ttc7.TTC7Protocol.logoff(TTC7Protocol.java:280)
at oracle.jdbc.driver.OracleConnection.close(OracleConnection.java:552)
at com.yantra.yfs.core.YFSContext.close(Unknown Source)
at com.yantra.yfs.agent.YFSPaymentCollectionMain.run(Unknown Source)
at java.lang.reflect.Method.invoke(Native Method)
at com.yantra.yfs.api.YFSAdminImpl.runAgent(Unknown Source)
at com.yantra.yfs.japi.util.YFSAgentRunner.runAgent(Unknown Source)
at com.yantra.yfs.japi.util.YFSAgentRunner.run(Unknown Source)
at java.lang.Thread.run(Thread.java:484)
java.lang.reflect.InvocationTargetExcep tion:
<Errors TotalErrors="1">
<Stack>java.sql.SQLException: Protocol violation at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:156) at oracle.jdbc.dbaccess.DBError.check_error(DBError.java:803) at oracle.jdbc.ttc7.Oclose.receive(Oclose.java:130) at oracle.jdbc.ttc7.TTC7Protocol.close(TTC7Protocol.java:493) at oracle.jdbc.driver.OracleStatement.close(OracleStatement.java:479) at com.yantra.yfs.core.YFSDBHome.closeStatement(Unknown Source) at com.yantra.yfs.dbclasses.YFS_Order_HeaderDBHome.listWithWhere(Unknown Source) at com.yantra.yfs.dbclasses.YFS_Order_HeaderDBHome.listWithWhere(Unknown Source) at com.yantra.yfs.business.YFSPaymentCollection.getOrdForRequest(Unknown Source) at com.yantra.yfs.agent.YFSPaymentCollectionMain.run(Unknown Source) at java.lang.reflect.Method.invoke(Native Method) at com.yantra.yfs.api.YFSAdminImpl.runAgent(Unknown Source) at com.yantra.yfs.japi.util.YFSAgentRunner.runAgent(Unknown Source) at com.yantra.yfs.japi.util.YFSAgentRunner.run(Unknown Source) at java.lang.Thread.run(Thread.java:484)</Stack>
<Error ErrorCode="17401" ErrorDescription="Error description not available" ErrorRelatedMoreInfo="SQLState=&SQL Message=Protocol violation"/>
</Errors>

at com.yantra.yfs.core.YFSDBHome.closeStatement(Unknown Source)
at com.yantra.yfs.dbclasses.YFS_Order_HeaderDBHome.listWithWhere(Unknown Source)
at com.yantra.yfs.dbclasses.YFS_Order_HeaderDBHome.listWithWhere(Unknown Source)
at com.yantra.yfs.business.YFSPaymentCollection.getOrdForRequest(Unknown Source)
at com.yantra.yfs.agent.YFSPaymentCollectionMain.run(Unknown Source)
at java.lang.reflect.Method.invoke(Native Method)
at com.yantra.yfs.api.YFSAdminImpl.runAgent(Unknown Source)
at com.yantra.yfs.japi.util.YFSAgentRunner.runAgent(Unknown Source)
at com.yantra.yfs.japi.util.YFSAgentRunner.run(Unknown Source)
at java.lang.Thread.run(Thread.java:484)
Requestcollection finished. Starting Executecollection. Fri Dec 7 06:02:30 EST 2001
setting zero charges to closed

SQL*Plus: Release 8.1.7.0.0 - Production on Fri Dec 7 06:02:30 2001

(c) Copyright 2000 Oracle Corporation. All rights reserved.


Connected to:
Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - Production


0 rows updated.

PART: Agents 3.1 SP2 Platform
COMPONENT: YFSPaymentCollection
OS: Solaris - 2.8
DATABASE: Oracle - 8.1.6
WEB SERVER: WebLogic - 6.0 SP2
WEB BROWSER: Internet Explorer - 5.0

Cause

Resolving The Problem

This occurs because in agentRunner.sh, the user has not set Xmx parameter for java command to the Agent Runner. When this is the case, the default memory 64Mb is used for the Java heap for a single thread of the program. In this case, when the load is very high (like 10000 orders to be processed).

In this case set this parameter to 256M or 512M depending on the total physical RAM of the system.
For example, in a typical command in agentRunner.sh should be set as:

java -Xmx256m com.yantra.yfs.japi.util.YFSRunner $*

[{"Product":{"code":"SS6QYM","label":"Sterling Selling and Fulfillment Suite"},"Business Unit":{"code":"BU055","label":"Cognitive Applications"},"Component":"Not Applicable","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All","Edition":"","Line of Business":{"code":"LOB59","label":"Sustainability Software"}}]

Historical Number

PRI48650

Product Synonym

[<p><b>]Fact[</b><p>];

Document Information

Modified date:
16 June 2018

UID

swg21536919