Problem with updateAppUser

Version 1
    This document was generated from CDN thread

    Created by: Florian Kroessbacher on 21-02-2013 03:04:27 AM
    Hy out there.

    We are Using AXL to update our Application User. The Code is working, but sometimes i got this Error Message

    We are trying to update the APPUser with about 6800 Device's. Between each Update of an AppUser we are waiting for one
    minute to do the next.
    What can i do to make the Update always run without an Error. Maybe there is somebody out there to help me
     
    Thnxs Florian
    Error Message i See:
    ##########################################################################################################
    2013-02-20 23:15:14,068 INFO  [http-8443-29] servletRouters.AXLAlpha - Going to axis--->
    2013-02-20 23:15:33,751 ERROR [http-8443-29] axlapiservice.AXLAPIServiceSkeleton - com.cisco.www.axlapiservice.AXLAPIServiceSkeleton@1b4666
    java.sql.SQLException: Could not open database table (informix.device).
        at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3457)
        at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3774)
        at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2580)
        at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2496)
        at com.informix.jdbc.IfxSqli.a(IfxSqli.java:1766)
        at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1704)
        at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1635)
        at com.informix.jdbc.IfxResultSet.a(IfxResultSet.java:206)
        at com.informix.jdbc.IfxStatement.executeQueryImpl(IfxStatement.java:1229)
        at com.informix.jdbc.IfxStatement.executeQuery(IfxStatement.java:219)
        at com.cisco.ccm.dbl.Connector.executeQuery(Connector.java:1036)
        at com.cisco.www.axlapiservice.UpdateAppUserHandler.updateAssociatedDevices(UpdateAppUserHandler.java:199)
        at com.cisco.www.axlapiservice.UpdateAppUserHandler.doUpdate(UpdateAppUserHandler.java:109)
        at com.cisco.www.axlapiservice.AXLAPIServiceSkeleton.updateAppUser(AXLAPIServiceSkeleton.java:4498)
        at com.cisco.www.axlapiservice.AXLAPIServiceMessageReceiverInOut.invokeBusinessLogic(AXLAPIServiceMessageReceiverInOut.java:2514)
        at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
        at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
        at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:131)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at sun.reflect.GeneratedMethodAccessor3233.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
        at org.apache.catalina.core.ApplicationDispatcher.access$000(ApplicationDispatcher.java:65)
        at org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward.run(ApplicationDispatcher.java:80)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:294)
        at com.cisco.www.servletRouters.AXLAlpha.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
        at com.cisco.www.servletRouters.AXLFilter.doFilter(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor322.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
        at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:394)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)
    Caused by: java.sql.SQLException: ISAM error: cannot allocate memory.
        at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408)
        at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3779)
        ... 83 more
    2013-02-20 23:15:33,753 INFO  [http-8443-29] axlapiservice.AXLCallFlow - sqlString is : select name from typedberrors where enum=Could not open database table (informix.device).
    2013-02-20 23:15:33,753 INFO  [http-8443-29] axlapiservice.AXLCallFlow - errorCodeString is : Could not open database table (informix.device).
    2013-02-20 23:15:33,756 ERROR [http-8443-29] axlapiservice.AXLCallFlow - com.cisco.www.axlapiservice.AXLAPIServiceSkeleton@1b4666
    java.sql.SQLException: A syntax error has occurred.
        at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408)
        at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3461)
        at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3774)
        at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2580)
        at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2496)
        at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1662)
        at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1635)
        at com.informix.jdbc.IfxResultSet.a(IfxResultSet.java:206)
        at com.informix.jdbc.IfxStatement.executeQueryImpl(IfxStatement.java:1229)
        at com.informix.jdbc.IfxStatement.executeQuery(IfxStatement.java:219)
        at com.cisco.ccm.dbl.Connector.executeQuery(Connector.java:1036)
        at com.cisco.www.axlapiservice.AXLCallFlow.getSOAPError(AXLCallFlow.java:111)
        at com.cisco.www.axlapiservice.AXLAPIServiceSkeleton.updateAppUser(AXLAPIServiceSkeleton.java:4504)
        at com.cisco.www.axlapiservice.AXLAPIServiceMessageReceiverInOut.invokeBusinessLogic(AXLAPIServiceMessageReceiverInOut.java:2514)
        at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
        at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
        at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:131)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at sun.reflect.GeneratedMethodAccessor3233.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
        at org.apache.catalina.core.ApplicationDispatcher.access$000(ApplicationDispatcher.java:65)
        at org.apache.catalina.core.ApplicationDispatcher$PrivilegedForward.run(ApplicationDispatcher.java:80)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:294)
        at com.cisco.www.servletRouters.AXLAlpha.doPost(Unknown Source)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at sun.reflect.GeneratedMethodAccessor121.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
        at com.cisco.www.servletRouters.AXLFilter.doFilter(Unknown Source)
        at sun.reflect.GeneratedMethodAccessor322.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
        at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
        at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:563)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
        at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:394)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:662)
    Caused by: java.sql.SQLException
        at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408)
        at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3779)
        ... 81 more
    2013-02-20 23:15:33,757 INFO  [http-8443-29] axlapiservice.AXLCallFlow - Exception occured while  querying the database : java.sql.SQLException: Could not open database table (informix.device).
    2013-02-20 23:15:33,758 INFO  [http-8443-29] servletRouters.AXLAlpha - Request processed by AXIS
    2013-02-20 23:15:33,758 INFO  [http-8443-29] servletRouters.AXLFilter - <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>Could not open database table (informix.device).</faultstring><detail><axlError><axlcode>-242</axlcode><axlmessage>Could not open database table (informix.device).</axlmessage><request>updateAppUser</request></axlError></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
    2013-02-20 23:15:33,759 INFO  [http-8443-29] servletRouters.AXLFilter - Request 1361259477167 was process in 19819ms
    ##########################################################################################################
     

    Subject: RE: Problem with updateAppUser
    Replied by: Geoffrey Carman on 21-02-2013 04:41:10 AM
    The key part of that error is the 'Caused By' which snipped out shows:
    Caused by: java.sql.SQLException: ISAM error: cannot allocate memory.
        at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:408)
        at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3779)
        ... 83 more
    Your Informix instance ran out of memory?  I have no clue how to to the DB but that seems the next step.
     

    Subject: RE: Problem with updateAppUser
    Replied by: Florian Kroessbacher on 21-02-2013 08:26:17 AM
    Hy
    i've search the BUG Toolkit
    and here it is
    http://tools.cisco.com/Support/BugToolKit/search/getBugDetails.do?method=fetchBugDetails&bugId=CSCub80236&from=summary
     
    cheers

    Subject: RE: Problem with updateAppUser
    Replied by: David Staudt on 21-02-2013 02:24:50 PM
    For something like this (huge scale operations), I would recommend investigating <executeSqlUpdate>, as in addition to errors like this AXL has throttling mechanisms that will kick in when data sets become gigantic. 
    Via a SQL query, you can add/remove device associations one at a time, or at least more efficiently in bulk (for example 100 at a time.)
    Check the Data Dictionary for your version of UCM for definitions of the tables/fields/relationships in the UCM database, the table you will likely want to manipulate is 'applicationuserdevicemap'.  Assuming you already know the user's and device's primary keys (UUIDs) the request might look something like (untested
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/7.1">
       <soapenv:Header/>
       <soapenv:Body>
          <ns:executeSQLUpdate sequence="1">
             <sql>INSERT INTO applicationuserdevicemap (description,fkapplicationuser,fkdevice,tkuserassociation) VALUES ("some description',deviceUUID,appuserUUID,1)</sql>
          </ns:executeSQLUpdate>
       </soapenv:Body>
    </soapenv:Envelope>
    Where tkuserassociation of '1' means a regular CTI controlled device (see the 'typeuserassociation' table).
    Informix syntax guide: http://publib.boulder.ibm.com/infocenter/idshelp/v10/topic/com.ibm.sqls.doc/sqls548.htm
     
     
     

    Subject: RE: Problem with updateAppUser
    Replied by: darrell breyer on 21-02-2013 02:30:48 PM
    That is good to know!  The business need is to allow users to update their pins via a .net page on our internal portal.  Don't anticipate large scale submissions but you never know in the future. 
    Have you had any experience with Extension mobility?  I need to update that pin as well.
    Thanks in advance
    Darrell