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 $*
Historical Number
PRI48650
Product Synonym
[<p><b>]Fact[</b><p>];
Was this topic helpful?
Document Information
Modified date:
16 June 2018
UID
swg21536919