Hi,
In our application we are facing one strange problem. We are using j2ee struts framework.
As part of struts, the flow is: Action layer calls -->BD-->EJB--->DAO--->Database....
I will try to explain the problem in brief. There is one hyperlink on one of the jsp page. Corresponsing Action calls a stored procedure on click on that hyperlink. Sometime, when we click on that hyperlink we are getting below mentioned exception. This is not happening always.
ea4a9a71 ExceptionUtil E CNTR0020E: Non-application exception occurred while processing method "getDetails" on bean "BeanId(GFE#GFEEJBAP.jar#MyEJB, null)". Exception data: java.lang.ArrayIndexOutOfBoundsException
at com.ibm.as400.access.JDServerRow.setRowIndex(JDSer verRow.java:271)
at com.ibm.as400.access.AS400JDBCPreparedStatement.co mmonExecuteAfter(AS400JDBCPreparedStatement.java:4 67)
at com.ibm.as400.access.AS400JDBCStatement.commonExec ute(AS400JDBCStatement.java:978)
at com.ibm.as400.access.AS400JDBCPreparedStatement.ex ecute(AS400JDBCPreparedStatement.java:780)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement. pmiExecute(WSJdbcPreparedStatement.java:584)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement. execute(WSJdbcPreparedStatement.java:386)
at com.polo.gfe.apps.ap.aap.dao.MyDAO.getDetails(MyDA O.java:788)
at com.polo.gfe.apps.ap.aap.ejb.servicebean.MyEJBBean .getDetails(MyEJBBean.java:351)
at
The DAO's code is:
------------------
String strSqlQuery =
resourceManager.getString(
AAPDBConstant.My_Stored_Procedure,
GFESysConstant.GFE_DB_SCHEMA_NAME);
CallableStatement stmtStoredProc =
connection.prepareCall(strSqlQuery);
//Set aap id as input parameter
stmtStoredProc.setInt(1, myFirstVO.getId());
stmtStoredProc.registerOutParameter(2, java.sql.Types.VARCHAR);
stmtStoredProc.registerOutParameter(3, java.sql.Types.INTEGER);
stmtStoredProc.registerOutParameter(4, java.sql.Types.INTEGER);
stmtStoredProc.registerOutParameter(5, java.sql.Types.DOUBLE, 2);
stmtStoredProc.registerOutParameter(6, java.sql.Types.DOUBLE, 2);
stmtStoredProc.registerOutParameter(7, java.sql.Types.INTEGER);
stmtStoredProc.registerOutParameter(8, java.sql.Types.VARCHAR);
stmtStoredProc.registerOutParameter(9, java.sql.Types.VARCHAR);
stmtStoredProc.registerOutParameter(10, java.sql.Types.VARCHAR);
//Execute stored procedure and process the result sets
----> Getting Error here-----> if (stmtStoredProc.execute()) {
objMyVO.setMyParamter1(stmtStoredProc.getInt(2));
objMyVO.setMyParamter1(stmtStoredProc.getInt(3));
objMyVO.setMyParamter1(stmtStoredProc.getDouble(4) );
.
.
.
.
.
It would be great if you give me some clue to resolve this issue. This issue is happening only in Production Environment. DEV and QA environments are working fine.
Technology used: Web sphere 5.1.0, DB2, AS/400, IBM Jdk 4.2
My Mail id is -
Kapweb@yahoo.com