ESB Trackable Fields

I am trying to utilize the Trackable Fields feature in ESB 10.1.3.1 and am having a large number of problems getting it to work. Among the issues are:
1)     When I add a trackable field and select the message type (request or response), the dropdown box displays both options but when I select one, the option I selected disappears.
2)     Even though the selection disappears, it seems to know which I selected, because when I go into the Expression Builder, it tries to bring up the correct XML structure. I say tries, because it’s not working. It seems to not display the first element defined in a complex type, and if that element happens to be a complex type itself, then it can’t display that entire portion of the document.
3)     After running an instance and reviewing the instance data, the trackable fields are not captured. The details tab shows “no data” under tracking data.
4)     Often after I edit the service to add or modify tracking fields and then run additional instances, the details show a pencil icon and the message “Service have been updated since the instance was processed”. This is even though I’ve updated the fields FIRST and then run the instance.
5)     When you delete a service, you lose all trackable fields you’ve set up since they aren’t defined in your deployment, limiting their usefulness for production needs.
…richard

Hi Richard,
I can answer some of your questions I think ...
When you define a trackable field in ESB, you need to make sure you've clicked the apply-button for each trackable field.
If you choose a specific operation or message in the dropdowns you can use the expression builder to choose which variable or information you want to track.
If you want to show data defined in a complex type, you just need to drill down in the expression builder to the attribute in the complex type you want to track.
If you want to show an element from a collection you will probably need a specific function or xpath expression to be able to get a specific element from the list.
After running the instance, the trackable fields are captured, but you need to make sure you select the wright operation in the instance menu.
Let's say I have a routing service with two adapters defined, a file and db adapter, and I've defined trackable fields on the db adapter. In the instance window you have to select the db adapter and then the trackable fields for the db adapter will be shown.
Indeed if you redeploy the esb services or delete the service, the trackable fields won't be available anymore. How to add these properties into the deployment process is a very good question.

Similar Messages

  • Trackable fields odn response message

    Hi,
    I've developed a routing service with both request and response message. Then I went on ESB console to configure Trackable Fields.
    When I try to set a Trackable Fiels on a response message the combo box "Message" lost the value, living a blank digit.
    Is this depending maybe on browser or what else?
    Thank you,
    Lisa

    Hi,
    for everyinsertion, you will get a response
    <INSERT_COUNT> </INSERT_COUNT>
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
    if the value ==1 , then insertions is sucessful, if value ==0, then insertion not succsful.
    So, in your mapping, just check if any of the values is 0 and if yes, then decide if you have to write a sucess message or a failure message.
    Regards,
    Bhavesh
    Regards,
    bhavesh

  • Unable to call a BPEL Process from ESB

    Has anyone worked on Oracle ESB ?
    I've implemented an ESB Scenario where, based on some value, either it should call one BPEL process otherwise it should call another BPEL Process. But, Routing Service is unable to call either of the service.
    Can anyone help me out?
    Thanks in Advance.
    Regards

    I am able to call the bpel processes from the bpel console. I tried to use the TCP Packet Monitor but it shows waiting for connection and doesn't turn up. I checked the port number. The local server port is correct but I dont know how to check the listener port for it i.e. by default showing 1234.
    I tried to test my esb through em as a webservice but it shows the following exception after input:
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>env:Server</faultcode><faultstring>oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException: An unhandled exception has been thrown in the ESB system. The exception reported is: "oracle.tip.esb.server.common.exceptions.BusinessEventFatalException: An unhandled exception has been thrown in the ESB system. The exception reported is: "java.lang.Exception: Failed to create "ejb/collaxa/system/DeliveryBean" bean; exception reported is: "javax.naming.NamingException: Lookup error: javax.naming.AuthenticationException: Not authorized; nested exception is:
         javax.naming.AuthenticationException: Not authorized [Root exception is javax.naming.AuthenticationException: Not authorized]
         at com.evermind.server.rmi.RMIClientContext.lookup(RMIClientContext.java:64)
         at javax.naming.InitialContext.lookup(InitialContext.java:351)
         at com.oracle.bpel.client.util.BeanRegistry.lookupDeliveryBean(BeanRegistry.java:279)
         at com.oracle.bpel.client.delivery.DeliveryService.getDeliveryBean(DeliveryService.java:250)
         at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:83)
         at com.oracle.bpel.client.delivery.DeliveryService.request(DeliveryService.java:67)
         at oracle.tip.esb.server.service.impl.bpel.BPELService.processBusinessEvent(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatchNonRoutingService(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(Unknown Source)
         at oracle.tip.esb.server.dispatch.BusinessEvent.raise(Unknown Source)
         at oracle.tip.esb.utils.EventUtils.raiseBusinessEvent(Unknown Source)
         at oracle.tip.esb.server.service.EsbRouterSubscription.onBusinessEvent(Unknown Source)
         at oracle.tip.esb.server.dispatch.EventDispatcher.executeSubscription(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscription(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.processSubscriptions(Unknown Source)
         at oracle.tip.esb.server.dispatch.EventDispatcher.dispatchRoutingService(Unknown Source)
         at oracle.tip.esb.server.dispatch.InitialEventDispatcher.dispatch(Unknown Source)
         at oracle.tip.esb.server.dispatch.BusinessEvent.raise(Unknown Source)
         at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.raiseEvent(Unknown Source)
         at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.processMessage(Unknown Source)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing(ProviderProcessor.java:869)
         at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation(WebServiceProcessor.java:349)
         at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing(ProviderProcessor.java:460)
         at oracle.j2ee.ws.server.WebServiceProcessor.processRequest(WebServiceProcessor.java:114)
         at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
         at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:177)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
         at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
         at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java:216)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:117)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:110)
         at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
         at oracle.oc4j.network.ServerSocketAcceptHandler.procClientSocket(ServerSocketAcceptHandler.java:239)
         at oracle.oc4j.network.ServerSocketAcceptHandler.access$700(ServerSocketAcceptHandler.java:34)
         at oracle.oc4j.network.ServerSocketAcceptHandler$AcceptHandlerHorse.run(ServerSocketAcceptHandler.java:880)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
         at java.lang.Thread.run(Thread.java:595)
    I've setup the trackable fields also but trackable data showed me no data. When I checked the validate check box, it has shown me error in first stage i.e. in file adapter itself.
    I don't know what's the problem?
    Please help as I am struggling with this.
    Thanks & Regards

  • ESB Filter question

    Hi,
    I'm developing an ESB that polls for a file (unix), truncates a table (using a database adapter) and then uses the data file to re-populate the table (database adapter). My file has 4900 records. The file adapter has been created to process records in batches of 1000. The file reading routing service, invokes the database adapter to truncate table. A second routing service then invokes another database adapter using the data read in batches to merge into the target table.
    This appears to be working for single batch instances (i.e. small number of records). I want to establish a filter on the invocation of the truncate database adapter, to ensure that the truncate does not happen prior to each batch of records processed. Is this required? At the moment I have a filter attached in the following form;
    position() = 1
    When I deploy the data file to the polled directory the process begins, and the instances appear in the ESB Console (5 of them, there are 4900 records in the data file). Each instance appears to go through the truncate database adapter (i.e. the green line extends through to the truncate box on the diagrammatic representation of the ESB instances).
    I have added trackable fields via the console and see that "position() = 1" is true for each batch/instance.
    Is there a way via filter and routing to restrict the truncation to only the first batch of records processed? I must say that the table appears to be only truncated once and all the data is appearing the table upon completion. My concern is that the diagrammatic representation may at some stage become accurate and at some stage I will end up with only 900 records in my table instead of the 4900 records that are in the data file.
    Hope this makes sense. I don't think that is a version issue, but for the record.
    Solaris 10.? App Server
    Database Oracle 10.2.0.2
    JDeveloper 10.1.3.3
    SOA Suite 10.1.3.1.0
    Thanks Kevin.

    The issue is that the routing service is sequential. We have a few adapters on the same routing service, and we observe that the message moves through the adapters sequentially.
    We are going to try to break out the routing service and end points so that each process dequeues from AQ, goes to one routing service, and one end point. Hopefully this way, there won't be any blocking, and all RS and endpoint can execute independently. The concern then is having a multi-consumer AQ, and I'm not sure if there are any issues with it.

  • Monitoring ESB

    Hi BPEL Gurus,
    We have a requirement : We need to monitor ESB in our project , its like we would make one of the field's(Account_id for example) trackable and then would like to know which BPEL instance id is its(ESB's) requestor & which particular BPEL Instance it (ESB) calling.
    What I have done :
    1) The trackable field part I guess can be done by using the trackable field functionality given in ESB Dev guide : http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28211/esb_console.htm#CIAEDGHE
    But the problem is that they havent explained it vividly and I can find no examples at all in internet or forum abt the trackable field functionality of ESB.
    2) The second part i.e figuring out which BPEL Instance id is calling ESB & which BPEL Instance id is called by ESB still has to be done.
    Would really appreciate if I pointers......
    Regards
    Varun

    If you wanna track the data in esb u can do it like this:
    Log onto the esb console.
    U ll find the list of services registered on the left.
    Click on the services and then clik trackable fileds ...Select the variable through XPath
    Run th Process
    Click on the latest instance...Then click on the component
    Here u can select the data u wanna monitor...U can see the instance id and the values ...

  • How to trace in ESB?

    Isn't possible to trace the outcome of each operation in ESB?
    For instance if you have a lot of operations manipulating data - it would be quite nice to see for each step how data looks like.
    Regards, Henrik

    You could trackable fields to log payload from request/response operations.
    http://www.oracle.com/technology/products/integration/esb/files/esb-presentation-em.pdf
    this document explains a bit about the config in enterprise manager to be able to log the payload.
    You can also put on security/auditing/etc on the esb applications (esb-rt /esb-dt) in the enterprise manager, this will log the payloads too.
    so..a few options..hope it helps you.

  • ESB Runtime Diagram help needed?

    Can someone point me to something that describes the annotations that appear in the runtime Diagram? I recently saw a big "R" in one service.
    Also, how does the Diagram determine whether it is invoking a regular soap service or a BPEL process? I have seen different icons represented in the diagram when the process being invoked by a routing service is a BPEL process.
    But now, it doesn't seem to know anymore that my SOAP service is in fact a BPEL process.
    I am also curious how the ESB chains together bigger pictures from the data it has.
    I have two routing services. One is ESB->BPEL and other is BPEL->ESB.
    It use to be that the Runtime diagram knew that the BPEL process in these two routing services were the same BPEL process so it drew it all as one big picture?
    How does it do that? and if it isn't doing that anymore, what can I do to make it do that?
    Thanks in advance.

    answering some of my own questions..
    defining the routing rule in the ESB Runtime Console, and than synching back with JDev Designer, changed the icon to the BPEL Process Icon in the design time environment. I am not sure if that's how it originally was done, or if there is an alternate way to get the process/routing service icon originally in the design time environment for the target of the routing service..
    The "R" in the design time is also surely for "Rolled Back".
    Still interested in how the ESB diagrammer creates the bigger picture if there are no trackable fields, which it seems to be able to do.

  • Error in Domain value mapping.

    Dear all,
    I was trying a simple file to file scenario using ESB with the Domain value mapping(DVM).
    I was trying to replace the incoming long state codes with the short keywords.
    I was using the DVM to configure the field to be changed in the XSL map.
    I have also configured tracking fields for Routing service and the Outbound adapter in the ESB Console.
    But after the instance the long names are not replaced with short keywords it come as blank in the place of names.
    In the ESB console the RS is tracking the fields and the outbound adapter not. I was using a simle text file which has two columns Andrew, Bangalore delimited by comma and optionally enclosed by space.
    Please help me.

    Thanks for the reply Chintan,
    Yes it is not working, I was doing the esb-customerdvm.pdf sample DVM as specified in the following link
    http://www.oracle.com/technology/products/integration/esb/files/esb-customerdvm.pdf
    My map also has three columns and I was the specifying Map name, Source column name as "Long" and the target column name as "Short" and the default value as "" in the lookup-dvm function in the XSL stylesheet.
    And I have also specified the trackable fields for the Routing service and the Outbound adapter in the ESB Console but after the instance only the RS shows the tracked data and the Outbound adapter doesnot and it shows Nodata.
    When I give the Input as the text file with columns Prasath, Chennai in the output file the Prasath is only coming what I expect is Chennai should be replaced by its short name CH but it is not coming like that.
    Here I also specify the coding of XSL Stylesheet map.
    <?xml version="1.0" encoding="UTF-8" ?>
    <?oracle-xsl-mapper
    <!-- SPECIFICATION OF MAP SOURCES AND TARGETS, DO NOT MODIFY. -->
    <mapSources>
    <source type="WSDL">
    <schema location="DVMapsInput.wsdl"/>
    <rootElement name="Leaf" namespace="http://TargetNamespace.com/DVMapsInput"/>
    </source>
    </mapSources>
    <mapTargets>
    <target type="WSDL">
    <schema location="DVMapsOutput.wsdl"/>
    <rootElement name="Leaf" namespace="http://TargetNamespace.com/DVMapsInput"/>
    </target>
    </mapTargets>
    <!-- GENERATED BY ORACLE XSL MAPPER 10.1.3.3.0(build 070615.0525) AT [FRI MAY 23 12:31:40 IST 2008]. -->
    ?>
    <xsl:stylesheet version="1.0"
    xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:pc="http://xmlns.oracle.com/pcbpel/"
    xmlns:ehdr="http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions"
    xmlns:imp1="http://TargetNamespace.com/DVMapsInput"
    xmlns:ns0="http://www.w3.org/2001/XMLSchema"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/file/DVMapsInput/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/file/DVMapsOutput/"
    xmlns:hwf="http://xmlns.oracle.com/bpel/workflow/xpath"
    xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
    xmlns:xref="http://www.oracle.com/XSL/Transform/java/oracle.tip.xref.xpath.XRefXPathFunctions"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:ora="http://schemas.oracle.com/xpath/extension"
    xmlns:ids="http://xmlns.oracle.com/bpel/services/IdentityService/xpath"
    xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc"
    xmlns:hdr="http://xmlns.oracle.com/pcbpel/adapter/file/"
    exclude-result-prefixes="xsl plt pc imp1 ns0 jca ns1 hdr tns bpws ehdr hwf xp20 xref ora ids orcl">
    <xsl:template match="/">
    <imp1:Leaf>
    <imp1:C1>
    <xsl:value-of select="/imp1:Leaf/imp1:C1"/>
    </imp1:C1>
    <imp1:C2>
    <xsl:value-of select='orcl:lookup-dvm("Citycode","Long",/imp1:Leaf/imp1:C2,"Short","")'/>
    </imp1:C2>
    </imp1:Leaf>
    </xsl:template>
    </xsl:stylesheet>
    Please help on this.
    Thanks.

  • Messaging Backbone in Oracle SOA suite

    Hi all,
    Can somebody please let me know, whether we have any tools in SOA suite that implements the basic requirements of a Messaging Backbone for SOA.
    As per a standard practices a Messaging Backbone for SOA is expected to do below functionalities...
    1) Transactionality
    2) Sequencing
    3) Error Handling & Retries
    4) Prioritization
    5) Rules based monitoring
    6) Processing of messages
    Do we have these funtionalities implemented in Oracle's ESB or any of the tools in SOA suite.
    If not, do we have any other third party vendor, who provide this.
    Kindly let me know....
    Thanks,
    Shiv

    Shiv,
    Point 6 is definitely possible. You can read messages (from file, from a queue etc) and transform them.
    For point 5 I am not entirely sure:
    You can define conditions for your trackable fields (see http://download.oracle.com/docs/cd/B31017_01/integrate.1013/b28211/esb_console.htm#sthref258 ) for an explanation.
    What do you mean by system utilization?
    The other three points, you can solve with a combination between JMS and ESB. (If I understand correctly what you mean by them).
    I don't want to give you an advice about what messaging solution you should pick, that really depends on a lot of factors:
    - knowledge of IBM products in your organization
    - use cases where you want use a messaging solution
    - budget
    - etc.
    I suggest you take a look at the IBM site and also try some of the tutorials that are part of the ESB and SOA Suite. That way you get a feel of the possibilities of the products.
    regards,
    Lonneke

  • ESB console issue - defining tracking fields - minor.

    when defining a tracking field, when you wish to insert a simple XML element into the expression builder by selecting it , don't drag and drop the element onto the edit area; instead, use the "Insert into Expression button". the expression generated by the drah and drop will not work
    e.g.
    javascript:doEnableAction('0,1,<anonymous>,<anonymous>,simple,/schema/ns0:TargetCollection/ns0:Target/ns0:col2,/ns0:TargetCollection/ns0:Target/ns0:col2,ns0:col2')
    ns0:col2
    when if you use the "Insert into expression" button then you get
    /ns0:TargetCollection/ns0:Target/ns0:col2 which is correct.
    the manual is actually correct [ E10295-01 Ch.3 ] but the reflex action is to drag and drop, and without knowing what it should look like it is easy to get it wrong.
    Just my 0.05c
    Chris

    Hi ,
    i checked log file .
    i am getting below error .
    oracle.tip.esb.server.common.exceptions.BusinessEventRetriableException: An unhandled exception has been thrown in the ESB system. The exception reported is: "ORABPEL-02181
    Failed due to unhandled bpel fault.
    at com.collaxa.cube.engine.CubeEngine.scheduleAsyncAuditStore(CubeEngine.java:6206)
    at com.collaxa.cube.engine.CubeEngine.handleWorkItem(CubeEngine.java:1694)
    Regards ,
    Mohan

  • ESB errors not propagating to BPEL process

    I am working in SOA Suite 10.1.3.3. I have an asynchronous BPEL process that is orchestrating a number of ESB services, most of which perform database operations. Occasionally an attempt is made to insert a record into a table which results in an error (e.g., null value inserted into a non-null field, record already exists, non-existent record in parent table upon which current table depends, etc.). This correctly results in an error in the ESB service that shows up in the ESB Control console.
    The problem is that the error is NOT propagated upward to the invoking BPEL process (which contains all manner of fault catching branches to process the error, log it, send email notifications, and perform other database operations dependent upon the success or failure of the ESB operations). The BPEL process is therefore left "hanging" and never appears in the BPEL Control console as an instance. It shows up in the Manual Recovery queue as an essentially unrecoverable process.
    I am assuming that this change in behavior (such errors formerly propagated to the calling BPEL) is a direct result of the new Fault Handling Framework. My question is: what do I have to do in order to restore the original behavior of the system (ESB service encounters an error and propagates the fault to the async BPEL process, which catches it and does whatever it needs to do to fulfill the requirements of the overall system)? Is this something that can be handled by changes to the BPEL/ESB system configuration, the BPEL process definition, the ESB service definitions, or some combination thereof?
    Thanks for your time.
    Paul Camann

    Hello. We applied 10.1.3.3.1 MLR14 in late October 2008.
    We are seeing large numbers of errors like this in the ESB log ($ORACLE_HOME/j2ee/oc4j_soa/log/oc4j_soa_default_group_1/oc4j/log.xml):
    <MESSAGE>
    <HEADER>
    <TSTZ_ORIGINATING>2009-01-26T13:11:15.497-05:00</TSTZ_ORIGINATING>
    <COMPONENT_ID>tip</COMPONENT_ID>
    <MSG_TYPE TYPE="ERROR"></MSG_TYPE>
    <MSG_LEVEL>1</MSG_LEVEL>
    <HOST_ID>biwsvlbat027.gdbiw.com</HOST_ID>
    <HOST_NWADDR>1.2.3.4</HOST_NWADDR>
    <MODULE_ID>esb.server.service.impl.soap</MODULE_ID>
    <THREAD_ID>98</THREAD_ID>
    <USER_ID>oracle</USER_ID>
    <SUPPL_ATTRS>
    <ATTR NAME="J2EE_MODULE.name">provider-war</ATTR>
    <ATTR NAME="J2EE_APP.name">esb-rt</ATTR>
    <ATTR
    NAME="WEBSERVICE_PORT.name">__soap_Router_ODS_STAGE_Insert_ODS_STAGE_I_PortType</ATTR>
    <ATTR NAME="WEBSERVICE.name">ESB_Router_ODS_STAGE_Insert_Service</ATTR>
    </SUPPL_ATTRS>
    </HEADER>
    <CORRELATION_DATA>
    <EXEC_CONTEXT_ID><UNIQUE_ID>1232993475:1.2.3.4:7097:0:307</UNIQUE_ID><SEQ>5</SEQ></EXEC_CONT
    EXT_ID>
    </CORRELATION_DATA>
    <PAYLOAD>
    <MSG_TEXT>Exception while print response</MSG_TEXT>
    <SUPPL_DETAIL><![CDATA[java.lang.NullPointerException
    at oracle.tip.esb.server.service.impl.soap.EventOracleSoapProvider.processMessage
    (EventOracleSoapProvider.java:215)
    at oracle.j2ee.ws.server.provider.ProviderProcessor.doEndpointProcessing
    (ProviderProcessor.java:956)
    at oracle.j2ee.ws.server.WebServiceProcessor.invokeEndpointImplementation
    (WebServiceProcessor.java:349)
    at oracle.j2ee.ws.server.provider.ProviderProcessor.doRequestProcessing
    (ProviderProcessor.java:466)
    at oracle.j2ee.ws.server.WebServiceProcessor.processRequest
    (WebServiceProcessor.java:114)
    at oracle.j2ee.ws.server.WebServiceProcessor.doService(WebServiceProcessor.java:96)
    at oracle.j2ee.ws.server.WebServiceServlet.doPost(WebServiceServlet.java:177)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at com.evermind.server.http.ServletRequestDispatcher.invoke
    (ServletRequestDispatcher.java:713)
    at com.evermind.server.http.ServletRequestDispatcher.forwardInternal
    (ServletRequestDispatcher.java:370)
    at com.evermind.server.http.HttpRequestHandler.doProcessRequest
    (HttpRequestHandler.java:871)
    at com.evermind.server.http.HttpRequestHandler.processRequest
    (HttpRequestHandler.java:453)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:302)
    at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:190)
    at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run
    (ServerSocketReadHandler.java:260)
    at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run
    (ReleasableResourcePooledExecutor.java:303)
    at java.lang.Thread.run(Thread.java:595)
    ]]></SUPPL_DETAIL>
    </PAYLOAD>
    </MESSAGE>
    which is possibly the message that would come back from ESB to BPEL failing?
    Thank you.

  • Custom Filename for ESB FileAdapter Write

    Hi,
    I have a ESB service that monitors and deqeues from the oracle.apps.po.event.xmlpo business event via the Oracle Applications adapter. This works fine as the WF_EVENT_T schema is routed via an XSL to a custom XML which is used later.
    However, I want the file to use a custom filename with the file adapter. In principle I know how to do this using the ehdr:setOutboundHeader functionality and have got this to work when setting a static filename.
    However, I want to be able to create the filename based on the Purchase Order Number coming from the WF_EVENT_T schema. It seems that the ehdr:setOutboundHeader function has to be set before any of the XML Template matches, which means at this point the Purchase Order number is not available. Below is the main parts of the XSL.
    <xsl:variable name="CustomFilename" select="'/ns2:PONo"/>
    <xsl:variable name="AssignFilename"
    select="ehdr:setOutboundHeader('/ns1:OutboundFileHeaderType/ns1:fileName',$CustomFilename,'ns1=http://xmlns.oracle.com/pcbpel/adapter/file/Capture_PO_Event_Data/;')"/>
    <xsl:template match="/">
    <ns2:HCNPOWFEVENT>
    <xsl:for-each select="/imp1:WF_EVENT_T/PARAMETER_LIST/PARAMETER_LIST_ITEM">
    <xsl:if test='NAME = "DOCUMENT_NO"'>
    <ns2:PONo>
    <xsl:value-of select="VALUE"/>
    </ns2:PONo>
    </xsl:if>
    </xsl:for-each>
    <xsl:for-each select="/imp1:WF_EVENT_T/PARAMETER_LIST/PARAMETER_LIST_ITEM">
    <xsl:if test='NAME = "ECX_TRANSACTION_TYPE"'>
    <ns2:POType>
    <xsl:value-of select="VALUE"/>
    </ns2:POType>
    </xsl:if>
    </xsl:for-each>
    <xsl:for-each select="/imp1:WF_EVENT_T/PARAMETER_LIST/PARAMETER_LIST_ITEM">
    <xsl:if test='NAME = "ECX_TRANSACTION_SUBTYPE"'>
    <ns2:POSubType>
    <xsl:value-of select="VALUE"/>
    </ns2:POSubType>
    </xsl:if>
    </xsl:for-each>
    <xsl:for-each select="/imp1:WF_EVENT_T/PARAMETER_LIST/PARAMETER_LIST_ITEM">
    <xsl:if test='NAME = "ECX_PARAMETER5"'>
    <ns2:OrgId>
    <xsl:value-of select="VALUE"/>
    </ns2:OrgId>
    </xsl:if>
    </xsl:for-each>
    <xsl:for-each select="/imp1:WF_EVENT_T/PARAMETER_LIST/PARAMETER_LIST_ITEM">
    <xsl:if test='NAME = "ECX_PARTY_ID"'>
    <ns2:ECXPartyId>
    <xsl:value-of select="VALUE"/>
    </ns2:ECXPartyId>
    </xsl:if>
    </xsl:for-each>
    <xsl:for-each select="/imp1:WF_EVENT_T/PARAMETER_LIST/PARAMETER_LIST_ITEM">
    <xsl:if test='NAME = "ECX_PARTY_SITE_ID"'>
    <ns2:ECXPartySiteId>
    <xsl:value-of select="VALUE"/>
    </ns2:ECXPartySiteId>
    </xsl:if>
    </xsl:for-each>
    </ns2:HCNPOWFEVENT>
    </xsl:template>
    </xsl:stylesheet>
    Any ideas on how this can be achieved ?

    Ok I was able to get fileadapter filenames modified.
    First you cannot do this after a dbadapter query as that functionality seems to be broken. The best way to solve it for me was to simplify the problem, I started with placing the setoutbound header data after reading a simple file and ignoring the files content altogether. I do the set inside a match of the xslt using a constant value, again for simplicity. For the test just put in 'ateststring.txt' in the setoutbound header call, no need to select data from the document at this point; we will get to that. Now get that to work.
    Once you have that working take a value from the incoming document and select it into a variable named myvariable then replace the 'ateststring.txt' with $myvariable. So basically its a three step process for the final solution. Select the data of interest from the document into a variable. add a select statement to make the method call just after that. Make the method call inside the select statement and prepend the variable name with the $ symbol.
    So far I have only tested this file to file and file to ftp, I suspect that jmsadapter to file will work fine too. So the trick for me was to understand that if an incoming document is the result of a query that just wont do. My requirement was to take an input JMS request, use that to drive a query, take the data from the query and write it to a filename as defined in the JMS request. No matter what I did to set the frustrating fileadapter/ftpadapter filename in the header I was unable to do so. I used constant strings etc in every part of the document ( before select, inside select, outside select etc ). It wasnt until I went file to file that I was able to get this to work at all. And then not in the xslt header etc, it MUST be in an area of the document that resulted in a select match, which after review makes sense.
    To work around the query to file issue, I place the results of the data query into a temporary filename%SEQ%.tmp, along with the query results I add the real filename inside the document. I have a file listener that listens for the filename using wildcards filename*.tmp, it takes the file reads it in, pulls the permanent filename from the incoming document, and sets that filename in the header using the steps worked out above by selecting the filename into myvariable.
    You cannot ( to my knowlege ) store variables in ESB so I found I had to put them inside the documents to move the data around. When I am all done with the work through the routing service I strip out the variable data fields that I needed to carry along with the data.
    Please let me know how you are going with this, I hope this saves someone else a bit of frustration.
    Thanks again,
    John

  • Database Adapter using Logical Delete Polling Strategy not updating field

    I have an ESB database adapter defined against a table. The adapter is set to use the Logical Delete Polling Strategy, and the table has an extra column defined as the "delete" field. When I register the adapter to the ESB and add a record to the table, the adapter reads the contents of the record as expected. However, 15 seconds later (that being the polling interval) it reads it again, and again 15 seconds after that, ad infinitum.
    I have defined the logical delete field as a single character field and set the Read value for "T" (a record is normally inserted with that field having a null value). Results as outlined in the previous paragraph. I redefined the field as a number and set the Read value to "1" (with a record normally inserted with that field having a value of "0"). Results as outlined in the previous paragraph.
    Apparently the update of the logical delete value to the Read value is not occurring. My question (obviously) is: Why?
    Thanks for your time.

    Here is the adapter WSDL:
    <?xml version="1.0" encoding="UTF-8"?>
    <definitions
    name="Poll_PM_LOG"
    targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/Poll_PM_LOG/"
    xmlns:tns="http://xmlns.oracle.com/pcbpel/adapter/db/Poll_PM_LOG/"
    xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
    xmlns:jca="http://xmlns.oracle.com/pcbpel/wsdl/jca/"
    xmlns:pc="http://xmlns.oracle.com/pcbpel/"
    xmlns:top="http://xmlns.oracle.com/pcbpel/adapter/db/top/PollPMLOG"
    xmlns="http://schemas.xmlsoap.org/wsdl/">
    <types>
    <schema xmlns="http://www.w3.org/2001/XMLSchema">
    <import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/PollPMLOG"
    schemaLocation="PollPMLOG_table.xsd"/>
    </schema>
    </types>
    <message name="LogCollection_msg">
    <part name="LogCollection" element="top:LogCollection"/>
    </message>
    <portType name="Poll_PM_LOG_ptt">
    <operation name="receive">
    <input message="tns:LogCollection_msg"/>
    </operation>
    </portType>
    <binding name="Poll_PM_LOG_binding" type="tns:Poll_PM_LOG_ptt">
    <pc:inbound_binding/>
    <operation name="receive">
    <jca:operation
    ActivationSpec="oracle.tip.adapter.db.DBActivationSpec"
    DescriptorName="PollPMLOG.Log"
    QueryName="Poll_PM_LOG"
    PollingStrategyName="LogicalDeletePollingStrategy"
    MarkReadFieldName="PROCESSED"
    MarkReadValue="T"
    SequencingFieldName="ID"
    MaxRaiseSize="1"
    MaxTransactionSize="unlimited"
    PollingInterval="15"
    NumberOfThreads="1"
    UseBatchDestroy="false"
    ReturnSingleResultSet="false"
    MappingsMetaDataURL="PollPMLOG_toplink_mappings.xml" />
    <input/>
    </operation>
    </binding>
    <service name="Poll_PM_LOG">
    <port name="Poll_PM_LOG_pt" binding="tns:Poll_PM_LOG_binding">
    <jca:address location="eis/DB/PM"
    UIConnectionName="PM"
    ManagedConnectionFactory="oracle.tip.adapter.db.DBManagedConnectionFactory"
    />
    </port>
    </service>
    <plt:partnerLinkType name="Poll_PM_LOG_plt" >
    <plt:role name="Poll_PM_LOG_role" >
    <plt:portType name="tns:Poll_PM_LOG_ptt" />
    </plt:role>
    </plt:partnerLinkType>
    </definitions>
    The field PROCESSED is defined as CHAR(1), and is normally null when a record is inserted. The value of the field is to be set to 'T' when the record is read by the polling adapter.

  • Unable to update Logical Delete field in AS400

    hi all,
    We have an ESB process that polls for data in AS400 DB and transfers this data into an Oracle DB. This polling is based on Logical Delete. The data transferred is in the range of some lakhs of records. So we are sending around 5000 records per transaction in ESB. When we deploy the process, the data in AS400 is being read and getting transferred. However, the status field is not changing to 'Read Value'. Due to this, we are facing a lot of issues like, when we're in middle of data transfer and the opmn restarts, the data which has already been transferred is also being read and this is throwing an error because of primary constraint violation. Even after the data transfer, if we delete any rows in Oracle DB, the data transfer resumes as the status field is not updated.
    I have worked with logical delete in Oracle DB before and was working fine.
    Please help me with Logical Delete functionality in case of AS400 Database and also please let me know the privilages we need to have on the AS400 DB to successfully run this process.
    Thanks,
    Kamal.

    Hi,
    According to your post, my understanding is that you was unable to update managed metadata field in designer workflow.
    You need to provide the exact string for the MMS value, in the form of <id>;<value>.
    The format of the value you wanted to set is uncorrectly, so you cannot update the managed metadata field.
    If you want to set the managed metadata field value with correct format, you’d better to create custom action.
    There is an article for your reference, although it is about the SharePoint 2010, it is similar to SharePoint 2013.
    http://patrickboom.wordpress.com/2013/07/23/workflow-activity-set-managed-metadata-column/
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • Need a relative sequence (count of record) in an input file in ESB input fi

    I am using ESB to pick up text files and pass them to a stored procedure. I have multiple variable length records in the file. I pass each record to the
    output file adapter, along with the input filename. I would also like to get a relative record number for each record within the file. I use an xsd file
    to convert the input to XML. The entire file is at the root level, each record is an element. Is there a way to get a relative count of each element?
    Here is the xsd file:
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    targetNamespace="http://TargetNamespace.com/Filein"
    xmlns:tns="http://TargetNamespace.com/Filein"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified" nxsd:encoding="ASCII" nxsd:stream="chars" nxsd:version="NXSD">
    <xsd:element name="Root-Element">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="C1" minOccurs="1" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="C1" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;">
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    <!--NXSDWIZ:J:\\UPLD5383.INM:-->
    <!--USE-HEADER:false:-->
    I need to map the relative record number to a field in the output.
    Is there a function similar to the get filename that would return this value to me?
    <xsl:value-of select='ehdr:getRequestHeader("/fhdr:InboundFileHeaderType/fhdr:fileName","fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/;")'/>
    I use this in the xsl file to get the file name .

    does each record start with a new line? if it does a
    simple wc -l can help you. If not, you can pre
    process this XML file by first removing all the new
    line characters using sed and then adding new line
    characters after the end tag of the xml using sed and
    finally doing a wc -l . this would be a simple shell
    script. Not sure if you want to use Unix shell
    scripting to achieve this.The sheer nature of XML means that it does not conform to any visual formatting. i.e. An xml file containing...
    <employee><empno>3</empno></employee>
    is identical in XML terms to...
    <employee>
    <empno>3</empno>
    </employee>
    which is also identical in XML terms to...
    <employee>
    <empno>
    3
    </empno>
    </employee>
    which is also identical in XML terms to...
    <employee><empno>
    3
    </empno></employee>
    etc.
    You cannot rely on the number of CR's or CR/LF's in the file to count the records. Proper XML processing should be used for such a task.

Maybe you are looking for

  • How to connect my time capsule & macbook to the internet?

    I purchased a Time Capsule last weekend to back up all my photos etc.  I was able to set up the Time Capsule with Airport Utility and now have my home network set up, I can easily get everything I need on my Macbook Pro (mid 2009, Mac OSX Lion 10.7.5

  • Find my WebLogic Server version ?

    Iam very new to Oracle..I wsh to install the Oracle11g Forms & reports.... as I know, to install the Oracle11g Forms & reports I need to install the weblogic server.... My clarifications are following.... 01). I have a desktop pc with higher configur

  • Data Set with multiple ref cursors

    Hi , I need to design an integrated report , i created my data set with a oracle procedure which returns "multiple ref cursors" . In this case birt is displaying all output columns together and it is difficult to identify which column belongs to whic

  • High Level Network Design

    Hi Guys I am posting this because I am starting my career into network design and want some help in it. I am at present in need of a high level design overview as I need to prepare some high level network design documents. Can anyone shower some thou

  • Pdf auto fill

    Once you take a word doc and create a PDF, is there a way to make ALL fields "fillable" automatically?  The ones I'm trying only fill a few fields, and it's sooo time consuming to fill each field.  Any help would be greatly appreciated!!!!!