Topic
3 replies Latest Post - ‏2013-11-06T18:26:16Z by peeps
jacquesrage
jacquesrage
2 Posts
ACCEPTED ANSWER

Pinned topic simple servlet with informix datasource give java.lang.NullPointerException DSRA0010E: Etat SQL = IX000, Code d'erreur = -79 999

‏2013-10-31T12:12:34Z |

hi, i create a fresh liberty profile server add my informix datasource.

<server description="new server">
    <!-- Enable features -->
    <featureManager>
        <feature>jsp-2.2</feature>
        <feature>ssl-1.0</feature>
        <feature>servlet-3.0</feature>
        <feature>jdbc-4.0</feature>
        <feature>jndi-1.0</feature>
    </featureManager>
    <httpEndpoint id="defaultHttpEndpoint"
                  host="*"
                  httpPort="10081"
                   />
    <library id="IFXLib">
        <fileset dir="${shared.resource.dir}/ifx" includes="*.jar"/>
    </library>
    <application id="IfxServlet" name="IfxServlet" location="IfxServlet.war" type="war">
    <dataSource id="storesDS" jndiName="jdbc/storesDS">
        <jdbcDriver libraryRef="IFXLib"/>
        <properties.informix databaseName="stores" ifxIFXHOST="localhost"
                         serverName="ids" portNumber="1569" user="informix" password="informix" />
    </dataSource>
    </application>
</server>
 

the error message is java.lang.NullPointerException DSRA0010E: Etat SQL = IX000, Code d'erreur = -79 999

and the informix server give listener-thread: err = -25582: oserr = 0: errstr = from localhost to server ids : Network connection is broken.

the same servlet in the same profile works with db2 9.7

my version is 8.5.5.0

thanks

  • peeps
    peeps
    2 Posts
    ACCEPTED ANSWER

    Re: simple servlet with informix datasource give java.lang.NullPointerException DSRA0010E: Etat SQL = IX000, Code d'erreur = -79 999

    ‏2013-11-01T08:32:59Z  in response to jacquesrage

    Hi,

         The error -25582 on the informix server listener thread means that the network connection is broken. The documentation for this error is given below:
    This error might indicate that the database server has terminated, or a problem might exist on the network itself.
    Check that the network is functioning and that the server is still running.

    So this looks like a problem at the Informix database server end. Can you check if the server is still up and accessible? You can do that by trying to use
    dbaccess to connect to the database. If that works can you try connecting to your Informix instance from a standalone java program (using DriverManager) so that we can confirm that there is no problem with connectivity?

    If the above does not work then there is something wrong with your local Informix installation and you will need to either reinstall or debug the cause of that.

    If your Informix server is running and you are able to run a standalone jdbc program then can you collect the logs and traces and attach it in your post? Use the trace string
    *=info=enabled:com.ibm.ws.jdbc.*=all=enabled:com.ibm.ejs.j2c.*=all=enabled:com.ibm.ws.rsadapter.*=all=enabled

    You can enable tracing by adding the following element in server.xml
    <logging traceSpecification="*=info=enabled:com.ibm.ws.jdbc.*=all=enabled:com.ibm.ejs.j2c.*=all=enabled:com.ibm.ws.rsadapter.*=all=enabled"/>

    The traces will be generated in ${server.config.dir}/logs where ${server.config.dir} is wlp/usr/servers/<your_server_name>

    More information on enabling logging is mentioned in the below link.
    http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/topic/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/rwlp_logging.html

    Also please mention the informix version and the driver version that you are using.

    P.S. Please do not nest the <dataSource> element inside the <application> element.

    Regards
    Manu
     

    • jacquesrage
      jacquesrage
      2 Posts
      ACCEPTED ANSWER

      Re: simple servlet with informix datasource give java.lang.NullPointerException DSRA0010E: Etat SQL = IX000, Code d'erreur = -79 999

      ‏2013-11-05T14:29:24Z  in response to peeps

      hi,

      i have try ifxjdbc version 4.10JC2.

      the trace is :

      [11/5/13 15:10:44:878 CET] 00000020 com.ibm.ws.webcontainer.servlet                              I SRVE0242I: [IfxServlet] [/IfxServlet] [testBeanIfx]: Initialization successful.
      [11/5/13 15:10:44:917 CET] 00000020 com.ibm.ws.jca.cm.ConnectorService                           I J2CA8050I: An authentication alias should be used instead of defining a user name and password on com.ibm.ws.jdbc.dataSource-storesDS/properties.informix-0.
      [11/5/13 15:10:45:040 CET] 00000020 com.ibm.ws.recoverylog.spi.RecoveryDirectorImpl              I CWRLS0010I: Performing recovery processing for local WebSphere server (Cell\Node\Server).
      [11/5/13 15:10:45:187 CET] 00000020 com.ibm.ws.recoverylog.spi.RecoveryDirectorImpl              I CWRLS0012I: All persistent services have been directed to perform recovery processing for this WebSphere server (Cell\Node\Server).
      [11/5/13 15:10:45:216 CET] 00000022 com.ibm.tx.jta.impl.RecoveryManager                          I WTRN0135I: Transaction service recovering no transactions.
      [11/5/13 15:10:45:292 CET] 00000020 com.ibm.ws.logging.internal.impl.IncidentImpl                I FFDC1015I: An FFDC Incident has been created: "java.sql.SQLException: com.informix.asf.IfxASFException com.ibm.ws.rsadapter.spi.InternalGenericDataStoreHelper.getPooledCon 1298" at ffdc_13.11.05_15.10.45.0.log
      [11/5/13 15:10:45:431 CET] 00000020 com.ibm.ws.logging.internal.impl.IncidentImpl                I FFDC1015I: An FFDC Incident has been created: "com.ibm.ws.rsadapter.exceptions.DataStoreAdapterException: DSRA8100E: Unable to get a PooledConnection from the DataSource. com.ibm.ejs.j2c.poolmanager.FreePool.createManagedConnectionWithMCWrapper 199" at ffdc_13.11.05_15.10.45.1.log
      [11/5/13 15:10:45:437 CET] 00000020 com.ibm.ws.logging.internal.impl.IncidentImpl                I FFDC1015I: An FFDC Incident has been created: "javax.resource.spi.ResourceAllocationException: DSRA8100E: Unable to get a PooledConnection from the DataSource. com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection 299" at ffdc_13.11.05_15.10.45.2.log
      [11/5/13 15:10:45:438 CET] 00000020 SystemErr                                                    R java.sql.SQLException: com.informix.asf.IfxASFException DSRA0010E: SQL State = 00000, Error Code = 0
       

      and

      ------Start of DE processing------ = [11/5/13 15:10:45:434 CET]
      Exception = javax.resource.spi.ResourceAllocationException
      Source = com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection
      probeid = 299
      Stack Dump = javax.resource.spi.ResourceAllocationException: DSRA8100E: Unable to get a PooledConnection from the DataSource.
              at com.ibm.ejs.j2c.FreePool.createManagedConnectionWithMCWrapper(FreePool.java:2051)
              at com.ibm.ejs.j2c.FreePool.createOrWaitForConnection(FreePool.java:1514)
              at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2969)
              at com.ibm.ejs.j2c.PoolManager.reserve(PoolManager.java:2325)
              at com.ibm.ejs.j2c.ConnectionManager.allocateMCWrapper(ConnectionManager.java:1285)
              at com.ibm.ejs.j2c.ConnectionManager.allocateConnection(ConnectionManager.java:852)
              at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:354)
              at com.ibm.ws.rsadapter.jdbc.WSJdbcDataSource.getConnection(WSJdbcDataSource.java:325)
              at testBeanIfx.doPost(testBeanIfx.java:52)

      i'm not sure where to declare this PooledConnection  ?

       JNDI Name <jdbc/storesDS>
      shareable <true>

      "
        strings[11] = "_______________________________________________________________________"
        strings[12] = ""
        strings[13] = "    First Failure Data Capture information for"
        strings[14] = "          com.ibm.ws.rsadapter.spi.WSManagedConnectionFactoryImpl@518b518b"
        strings[15] = "_______________________________________________________________________"
        strings[16] = ""
        strings[17] = "com.ibm.ws.rsadapter.DSConfig@4ac24ac2"
        strings[18] = "[beginTranForResultSetScrollingAPIs, true, beginTranForVendorAPIs, true, commitOrRollbackOnCleanup, null, connectionSharing, 0, isolationLevel, -1, jndiName, jdbc/storesDS, queryTimeout, null, statementCacheSize, 10, supplementalJDBCTrace, null, syncQueryTimeoutWithTransactionTimeout, false, transactional, true]"
        strings[19] = "[com.ibm.ws.classloading.internal.AppClassLoader@10e610e6, true, ExceptionChecking, com.ibm.websphere.rsadapter.InformixDataStoreHelper@51665166, com.ibm.ws.rsadapter.spi.InternalInformixDataStoreHelper@24072407, false, interface javax.sql.ConnectionPoolDataSource]"
        strings[20] = "{user=informix, ifxIFX_LOCK_MODE_WAIT=2, dataSourceClass=com.informix.jdbcx.IfxConnectionPoolDataSource, ifxIFX_XASPEC=y, portNumber=1569, databaseName=stores, serverName=ids, ifxIFXHOST=92.1.69.246}"
        strings[21] = "Resource Adapter:"
        strings[22] = "  null
      "
        strings[23] = "Database Type:"
        strings[24] = "  null
      "
        strings[25] = "Description:"
        strings[26] = "  null
      "
        strings[27] = "Log Writer:"
        strings[28] = "  null
      "
        strings[29] = "Transaction Branches are set to be Loosely Coupled: "
        strings[30] = "  false
      "
        strings[31] = "Counter of fatal connection errors on ManagedConnections created by this MCF:"
        strings[32] = "  0
      "
        strings[33] = "Validate existing connections on cleanup after a fatal connection error is detected?"
        strings[34] = "  true
      "
        strings[35] = "ResetConnectionByBackendDatabase: "
        strings[36] = "  false
       strings[39] = "JMSOnePhaseOptimization: "
        strings[40] = "  false
      "
        strings[41] = "Reauthentication: "
        strings[42] = "  false
      "
        strings[43] = "newDBConnectionValidationEnabled: "
        strings[44] = "  false
      "
        strings[45] = "connectionRetriesDuringDBFailover: "
        strings[46] = "  100
      "
        strings[47] = "connRetryDurationDuringDBFailover: "
        strings[48] = "  3000
      "
        strings[49] = "Failover count: "
        strings[50] = "  0
      "
        strings[51] = "OracleImplicitConnectionPooling enabled: "
        strings[52] = "  false
      "
        strings[53] = ""
        strings[54] = "_______________________________________________________________________"
        strings[55] = ""
        strings[56] = "    First Failure Data Capture information for"
        strings[57] = "          com.ibm.ws.rsadapter.spi.WSRdbDataSource@6e706e70"
        strings[58] = "_______________________________________________________________________"
        strings[59] = ""
        strings[60] = "DataSource Implementation Class Name:"
        strings[61] = "  com.informix.jdbcx.IfxConnectionPoolDataSource
      "
        strings[62] = "DataSource Name:"
        strings[63] = "  null
      "
        strings[64] = "DataStoreHelper:"
        strings[65] = "  com.ibm.websphere.rsadapter.InformixDataStoreHelper@51665166
      "
        strings[66] = "DataSource properties:"
        strings[67] = "  {user=informix, ifxIFX_LOCK_MODE_WAIT=2, dataSourceClass=com.informix.jdbcx.IfxConnectionPoolDataSource, ifxIFX_XASPEC=y, portNumber=1569, databaseName=stores, serverName=ids, ifxIFXHOST=92.1.69.246}
       

      i have 2 different engine version. The standalone program with the same jdbc source works fine.

      thanks.

      regards

       
      • peeps
        peeps
        2 Posts
        ACCEPTED ANSWER

        Re: simple servlet with informix datasource give java.lang.NullPointerException DSRA0010E: Etat SQL = IX000, Code d'erreur = -79 999

        ‏2013-11-06T18:26:16Z  in response to jacquesrage

        Hi,

                I was able to replicate your problem. You are hitting a known bug in the Informix driver 4.10JC2. You need to raise a ticket with Informix support and get the patched version of the driver which contains the fix. 

         

        Regards

        Manu