IBM Support

JR48570: REST API IS SLOW TO RETURN WITH LARGE AMOUNT OF EXPOSED SERVICES.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The REST API /v1/exposed may take an unexpectedly
    large amount of time to return with a response if there are a
    large amount of exposed services for a particular user.  Delays
    may be more apparent when loading exposed services in Portal.
    .
       The following WSVR0605W messages may be logged if the delay
    is longer than the WebSphere Application Server hung thread
    detection threshold.
    .
    [3/26/14 6:38:11:690 EDT] 00000024 ThreadMonitor W   WSVR0605W:
    Thread "WebContainer : 21" (0000067a) has been active for 669857
    milliseconds and may be hung.  There is/are 25 thread(s) in
    total in the server that may be hung.
            at java.net.SocketInputStream.socketRead0(Native Method)
            at
    java.net.SocketInputStream.read(SocketInputStream.java:140)
            at
    java.io.BufferedInputStream.fill(BufferedInputStream.java:
    229)
            at
    java.io.BufferedInputStream.read(BufferedInputStream.java:
    248)
            at org.apache.commons.httpclient.HttpParser.readRawLine
    (HttpParser.java:78)
            at
    org.apache.commons.httpclient.HttpParser.readLine(HttpParser.
    java:106)
            at org.apache.commons.httpclient.HttpConnection.readLine
    (HttpConnection.java:1116)
            at
    org.apache.commons.httpclient.HttpMethodBase.readStatusLine
    (HttpMethodBase.java:1973)
            at
    org.apache.commons.httpclient.HttpMethodBase.readResponse
    (HttpMethodBase.java:1735)
            at org.apache.commons.httpclient.HttpMethodBase.execute
    (HttpMethodBase.java:1098)
            at org.apache.commons.httpclient.HttpMethodDirector.
    executeWithRetry(HttpMethodDirector.java:398)
            at org.apache.commons.httpclient.HttpMethodDirector.
    executeMethod(HttpMethodDirector.java:171)
            at
    org.apache.commons.httpclient.HttpClient.executeMethod
    (HttpClient.java:397)
            at
    org.apache.commons.httpclient.HttpClient.executeMethod
    (HttpClient.java:323)
            at com.ibm.processinspector.rest.ProcessAdminRestClient.
    doPostQuery(ProcessAdminRestClient.java:172)
            at
    com.ibm.processinspector.rest.ProcessAdminRestClient.doQuery
    (ProcessAdminRestClient.java:303)
            at
    com.ibm.processinspector.rest.ProcessInstanceSearchAPIImpl.
    submitProcessInspectorSaveQueries(ProcessInstanceSearchAPIImpl.j
    ava:52)
            at com.ibm.processinspector.server.handlers.
    BPMInspectorRestRequestHandler.createProcessInstanceSearchAPI
    (BPMInspectorRestRequestHandler.java:55)
    
    .-----------------------------------------------
    and
    [8/12/15 11:26:36:235 EDT] 000000c2 ThreadMonitor W   WSVR0605W:
     Thread "WebContainer : 34" (00000c6d) has been active for
    692211 milliseconds and may be hung.  There is/are 2 thread(s)
    in total in the server that may be hung.
     at java.net.SocketInputStream.socketRead0(Native Method)
     at java.net.SocketInputStream.read(SocketInputStream.java:140)
     at
    com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1782)
     at
    com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:
    4838)
     at
    com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.j
    ava:6154)
     at
    com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.j
    ava:6106)
     at
    com.microsoft.sqlserver.jdbc.SQLServerResultSet$1CloseServerCurs
    orCommand.doExecute(SQLServerResultSet.java:5061)
     at
    com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:56
    96)
     at
    com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(
    SQLServerConnection.java:1715)
     at
    com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(S
    QLServerStatement.java:180)
     at
    com.microsoft.sqlserver.jdbc.SQLServerResultSet.closeServerCurso
    r(SQLServerResultSet.java:5069)
     at
    com.microsoft.sqlserver.jdbc.SQLServerResultSet.closeInternal(SQ
    LServerResultSet.java:584)
     at
    com.microsoft.sqlserver.jdbc.SQLServerResultSet.close(SQLServerR
    esultSet.java:597)
     at
    com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.closeWrapper(WSJdbcRes
    ultSet.java:345)
    ...
     at
    com.lombardisoftware.server.ejb.persistence.versioning.BranchMan
    ager$1.withReadAccess(BranchManager.java:221)
     at
    com.lombardisoftware.server.ejb.persistence.versioning.BranchCon
    textImpl.readAccess(BranchContextImpl.java:168)
     at
    com.lombardisoftware.server.ejb.persistence.versioning.BranchMan
    ager.readAccess(BranchManager.java:215)
     at
    com.lombardisoftware.server.ejb.persistence.PersistenceServicesC
    ore.findQuietlyByPrimaryKey(PersistenceServicesCore.java:211)
    ...
     at
    com.lombardisoftware.client.delegate.PersistenceServicesDelegate
    Default.findQuietlyByPrimaryKey(PersistenceServicesDelegateDefau
    lt.java:361)
     at
    com.lombardisoftware.client.persistence.common.factorydelegate.V
    ersionedFactoryDelegate.findQuietlyByPrimaryKey(VersionedFactory
    Delegate.java:136)
     at
    com.lombardisoftware.client.persistence.common.AbstractVersioned
    POFactory.findQuietlyByPrimaryKey(AbstractVersionedPOFactory.jav
    a:193)
     at
    com.lombardisoftware.client.persistence.common.AbstractVersioned
    POFactory.findQuietlyByPrimaryKey(AbstractVersionedPOFactory.jav
    a:189)
     at
    com.lombardisoftware.server.ejb.clientservices.libraryHandlers.T
    WClassLibraryHandler.createTreeElement(TWClassLibraryHandler.jav
    a:61)
     at
    com.lombardisoftware.server.ejb.clientservices.libraryHandlers.V
    ersionedLibraryHandler.createTreeElementWithTags(VersionedLibrar
    yHandler.java:88)
     at
    com.lombardisoftware.server.ejb.clientservices.libraryHandlers.V
    ersionedLibraryHandler.getLibraryElements(VersionedLibraryHandle
    r.java:140)
     at
    com.lombardisoftware.server.ejb.clientservices.libraryHandlers.L
    ibraryHandlerFactory$1.call(LibraryHandlerFactory.java:135)
     at
    com.lombardisoftware.server.ejb.clientservices.libraryHandlers.L
    ibraryHandlerFactory$1.call(LibraryHandlerFactory.java:131)
     at
    com.lombardisoftware.server.ejb.persistence.versioning.BranchMan
    ager$1.withReadAccess(BranchManager.java:221)
     at
    com.lombardisoftware.server.ejb.persistence.versioning.BranchCon
    textImpl.readAccess(BranchContextImpl.java:168)
     at
    com.lombardisoftware.server.ejb.persistence.versioning.BranchMan
    ager.readAccess(BranchManager.java:215)
    ...
     at
    com.lombardisoftware.client.persistence.common.versioning.Refere
    nceHelper.breadthFirstSearch(ReferenceHelper.java:652)
     at
    com.lombardisoftware.client.persistence.common.versioning.Refere
    nceHelper.breadthFirstSearch(ReferenceHelper.java:629)
     at
    com.lombardisoftware.client.persistence.common.versioning.Refere
    nceHelper.breadthFirstNameSearch(ReferenceHelper.java:340)
     at
    com.lombardisoftware.client.persistence.common.versioning.Refere
    nceHelper.getClassByName(ReferenceHelper.java:139)
     at
    com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeCore.resolv
    eBusinessDataType(SearchAPIFacadeCore.java:595)
     at
    com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeCore.access
    $000(SearchAPIFacadeCore.java:118)
     at
    com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeCore$1.extr
    actData(SearchAPIFacadeCore.java:403)
    ...
     at
    com.sun.proxy.$Proxy124.findSearchableBusinessDataAliases(Unknow
    n Source)
     at
    com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeBean$24.exe
    cute(SearchAPIFacadeBean.java:358)
     at
    com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeBean$24.exe
    cute(SearchAPIFacadeBean.java:356)
     at
    com.lombardisoftware.server.ejb.EjbServerUtils.handleEjbCall(Ejb
    ServerUtils.java:86)
     at
    com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeBean.handle
    EjbCall(SearchAPIFacadeBean.java:50)
     at
    com.lombardisoftware.server.ejb.psapi.SearchAPIFacadeBean.findSe
    archableBusinessDataAliases(SearchAPIFacadeBean.java:356)
     at
    com.lombardisoftware.server.ejb.psapi.EJSRemoteStatelessSearchAP
    IFacade_9724b32b.findSearchableBusinessDataAliases(Unknown
    Source)
     at
    com.lombardisoftware.server.ejb.psapi._SearchAPIFacadeInterface_
    Stub.findSearchableBusinessDataAliases(_SearchAPIFacadeInterface
    _Stub.java:1446)
     at
    com.lombardisoftware.client.delegate.SearchAPIFacadeDelegateDefa
    ult$24.run(SearchAPIFacadeDelegateDefault.java:708)
    

Local fix

  • N/A
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  IBM BPM Express, Standard and Advanced      *
    ****************************************************************
    * PROBLEM DESCRIPTION: Having many exposed services might      *
    *                      cause performance issues when Process   *
    *                      Portal starts.                          *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    Process Portal uses services that are exposed as dashboard and
    startable service subtypes, but if there many services that
    are exposed as other subtypes (such as URL or administration
    services), starting Process Portal might take longer than
    expected.
    The problem occurs because the REST API for the exposed items,
    which Process Portal calls to populate the dashboard and
    service launch lists, retrieves a large number of exposed
    services that Process Portal does not require. The REST API is
    "/rest/bpm/wle/v1/exposed" and
    "/rest/bpm/wle/v1/exposed/service"
    

Problem conclusion

  • A fix is available for IBM BPM V8.0.1.1, V8.0.1.2, V8.5.0.0, and
     V8.5.0.1 that allows Process Portal to filter the exposed
    services that it does not need to the REST API response.
    Depending on how many services are exposed as subtypes other
    than dashboard and startable services, this fix can
    significantly reduce the processing time that the REST API
    requires and the volume of data that returned to Process Portal.
    
    
    On Fix Central (http://www.ibm.com/support/fixcentral), search
    for JR48570:
    
    1. Select the product group, product, installed version, and
    platform, and click Continue.
    2. Select APAR or SPR, enter JR48570, and click Continue.
    
    When downloading fix packages, ensure that you also download the
    readme file for each fix. Review each readme file for additional
    installation instructions and information about the fix.
    

Temporary fix

Comments

APAR Information

  • APAR number

    JR48570

  • Reported component name

    BPM STANDARD

  • Reported component ID

    5725C9500

  • Reported release

    801

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-11-20

  • Closed date

    2013-12-16

  • Last modified date

    2015-08-12

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    BPM STANDARD

  • Fixed component ID

    5725C9500

Applicable component levels

  • R800 PSY

       UP

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSFTDH","label":"IBM Business Process Manager Standard"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"8.0.1","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
12 August 2015