4 Replies Latest reply on Jul 31, 2019 4:10 PM by Damir Dev

    OSB DB Polling Proxy Service change state for table row too late

    Damir Dev



      My process case:

      1) db table row STATUS="N" -> Read DB Proxy Service -> JMS Queue -> Read JMS Proxy Service -> Invoke Web Service -> Set STATUS="S" for db table row


      My detail process case:

      1) DB polling table (millions rows in STATUS="N" per day) -> Read DB Proxy Service -> Set state STATUS="N1-01" for prepolling for rows in DB polling table

      2) For every rows Read DB Proxy Service -> JMS Queue

      3) Read DB Proxy Service -> Set STATUS="P" for row in DB polling table

      4) JMS Queue -> Read JMS Proxy Service -> Invoke Web Service

      5) Read JMS Proxy Service -> Set STATUS="S" for row in DB polling table


      My enviroment and settings:

      1. Domain: AdminServer + one ManagedServer

      2. Weblogic Server ver

      3. Weblogic OSB ver

      4. DB HANA

      5. DBAdapter Connection Factory "eis/DB/test"


      6. Proxy Service JCA:

      <connection-factory location="eis/DB/test" UIConnectionName="TestDb" adapterRef=""/>

        <endpoint-activation portType="ReadEventService_ptt" operation="receive">

          <activation-spec className="oracle.tip.adapter.db.DBActivationSpec">

            <property name="DescriptorName" value="ReadEventService.Events"/>

            <property name="QueryName" value="ReadEventServiceSelect"/>

            <property name="MappingsMetaDataURL" value="ReadEventService-or-mappings.xml"/>

            <property name="PollingStrategy" value="LogicalDeletePollingStrategy"/>

            <property name="MarkReadColumn" value="STATUS"/>

            <property name="MarkReadValue" value="P"/>

            <property name="MarkReservedValue" value="N${weblogic.Name-1}-${IP-2}"/>

            <property name="MarkUnreadValue" value="N"/>

            <property name="PollingInterval" value="60"/>

            <property name="MaxRaiseSize" value="1"/>

            <property name="MaxTransactionSize" value="1"/>

            <property name="NumberOfThreads" value="1"/>

            <property name="ReturnSingleResultSet" value="false"/>



      7. Test JDBC Data Source nonXA with default settings


      Expected Result

      1) STATUS "N" -> STATUS "N1-01" -> STATUS "P" -> STATUS "S"


      Actual Result

      1) STATUS "N" -> STATUS "N1-01" -> STATUS "S" -> STATUS "P"


      Logs in chronological order

      ####<Jul 8, 2019 4:41:10 PM>

      [OSB Tracing] Outbound request was sent.

      Service Ref = SetSateService

      URI = jca://eis/DB/test

      Request metadata =


            <tran:headers xsi:type="jca:JCARequestHeadersXML" xmlns:jca="http://www.bea.com/wli/sb/transports/jca" xmlns:tran="http://www.bea.com/wli/sb/transports"




            <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>


      Payload =

      <?xml version="1.0" encoding="UTF-8"?>

      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body>...set state S..</soapenv:Body></soapenv:Envelope>


      ####<Jul 8, 2019 4:41:10 PM>


      [OSB Tracing] Inbound response was sent.

      Service Ref = Read DB Proxy Service

      URI = jca://eis/DB/test

      Message ID = ...

      Response metadata =


        <tran:headers xsi:type="jca:JCAResponseHeadersXML" xmlns:jca="http://www.bea.com/wli/sb/transports/jca" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

        <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>


      Payload =



      P.S. Read DB Proxy Service uses Best Effort for publish to JMS Queue. HDB does not support Skip Locked


      Could you please tell me how to get Expected Result?