File Rejected Message Handler in ESB

Hi All
I have installed Oracle SOA Suite 10.1.3.1 + 10.1.3.4 patch-set + MLR#5 on 3 servers:
1) Unix server A
2) Unix server B
3) Windows XP server
I have developed an ESB which is polling a file from an FTP in a particular XML Schema.
I have also set "rejectedMessageHandlers" in ESB FTP adapter's .esbsvc file.
So its set to rejectedMessageHandlers=/server/dhami/files/rejected on UNIX server A and B AND
rejectedMessageHandlers=file://C:/oracle/Files/error/esbHandler in Windows XP server.
Now when i provide a wrong XML file as input, say myXMLInput.xml it is rejected.
Issue is that in Unix Server A and Windows XP server, rejected file name comes as myXMLInput.xml,,
but on Unix Server B it comes as INVALID_MSG_********20090607_090132_0806.dat
Can anybody know the reason of that difference in behaviour? All the 3 environments are at same level.
Please Help.
Thanks
-- Inder

Hey guys, issue was that UNIX Server B was on MLR#5 patch level but dont know how it was rolled back to MLR#1.
So the issue resolution is that UNIX Server B too should be upgraded to MLR#5.
Then the rejected message files will come in as myXMLInput.xml and not as INVALID_MSG_********20090607_090132_0806.dat
Thx

Similar Messages

  • Did anyone tried Rejection Message Handler via Queue based method?

    Dear All,
    I am presently doing a Rejected Message Handler process and successfully implemented with File based and Web Service based. But I am not getting the clue for Queue based. We can enqueue the rejected message into queue as a JMS message via this method. But the URI format they have given is *"jdbc:oracle:thin:@<host>:<port>:<sid>#<un>/<pw>#queue"*. Format includes jdbc connection string along with queue name. For this I have created JMS module with JDBC Persistent store and created queue in it. But still I am not able to enqueue the message inside the queue. Also, is there anyway to see the queue names inside the DB. Did anyone tried this method? Could you please share the info??

    WL JMS Queue consume>BPEL1 (One way) invoke>Mediator service (one way) route> BPLE2 (one way). Also I have added transaction properties in BPEL1 and 2 + References + Services.
    Now, if there is a fault in BPEL2 the transaction should be rolled back in BPEL1 and the message should be seen in the WL queue itself. But that is not happening in my case. Everything is getting rolled back upto a point just after the >recieve activity in BPEL1 except the message is not getting rolled back to queue.There will be 2 transactions in this scenario : 1) jms queue to soa hydration store 2) soa-hydration to bpel execution.
    This is the behaviour for 1 way or async interfaces , jms adapter thread completes its transaction work after persisitng to dehydration store and another bpel system thread starts work executing the bpel code after retrieving the message off the db in a separate transaction. So the rollback you are seeing is only applicable for 2nd transaction which roll backs to the dehydration store instead of the queue.
    For synchronous interfaces, the same adapter thread will be involved for complete message processing including bpel code execution. So I think if you want to get the jms queue within the same transaction you can try set up the interfaces to be sync, even with dummy responses. This might make jms adapter thread to start a transaction --> read message off queue within the same transaction --> execute bpel code within same transaction --> complete/rollback transaction based on bpel code execution.

  • Receiver file adapter creates empty files, Empty-Message Handling SP19

    Hello,
    We have just upgraded the system to SP19.
    One of the new features is that it should be possible to determine how XI messages with an empty main payload are to be handled in the receiver file adapter.
    If the parameter Empty-Message Handling is set to 'Ignore' no file should be created if the main payload is empty. In our case an empty file (size 0 kb) is still created even though the main payload is empty and the flag is set to 'Ignore'.
    Has anybody experienced the same problem?
    //  Best regards  Hans

    This should work:
    Use your own adapter module that parses incoming message and checks if it has any record sets in the document. If it does not have any record sets, then set the message to empty and then give this modified message to File receiver.
    For example, see the example code below:
    Module imports..
    Audit log import..
    DOM imports/SAX imports..
    public ModuleData process(ModuleContext moduleContext, ModuleData inputModuleData) throws ModuleException {
              try {
                   // get the XI message from the environment
                   Message msg = (Message) inputModuleData.getPrincipalData();
                   AuditMessageKey amk = new AuditMessageKey(msg.getMessageId(),AuditDirection.INBOUND);
                   Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS,"RemoveRootTag: Module called");
                   XMLPayload payLoad = msg.getDocument();
                   Document doc = parseXmlFile(payLoad.getInputStream());
                   if(doc != null){
                        if(!doc.getDocumentElement().hasChildNodes()){
                             Audit.addAuditLogEntry(amk, AuditLogStatus.SUCCESS, "Document is empty!!");
                             payLoad.setContent("".getBytes());
                             msg.setDocument(payLoad);
                   // provide the XI message for returning
                   inputModuleData.setPrincipalData(msg);
                   } catch (Exception e) {
                   // raise exception, when an error occurred
                   ModuleException me = new ModuleException(e);
                   throw me;
                   // return XI message
              return inputModuleData;
         private Document parseXmlFile(InputStream xmlpayload) {
              try {
                   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
                   factory.setValidating(false);
                   //        Create the builder and parse the file
                   Document doc = factory.newDocumentBuilder().parse(xmlpayload);
                   return doc;
              } catch (SAXException e) {
              } catch (ParserConfigurationException e) {
              } catch(IOException e){
              return null;

  • Rejected Message Handler

    Hi All,
    I have a file adapter which picks up the message from the File location.
    I have configured the rejectedmessage handler in the bpel.xml,and given a folder path to write the rejected files.
    But when a file gets rejected it is being written only to the default directory and not to the directory i have configured.
    Below is the property i have set.
    <property name="rejectedMessageHandlers">file://D:/rejected/Write</property>
    Please help in this regard.
    Regards
    Ashwini

    When the process fails do you see in the log it finding the rejectedMessageHandlers. You should see something that as looking for rejection handler, success or failure. If you don't see anything then the rejection handler hasn't been registered.
    Also if it is a fault, e.g. disastrous, unrecoverable situation (no more memory, file handles, disk space or something similar) and not a rejection, then it will write to the default location, unless you handle this as well.
    Also can you post the full activation agent entry for bpel.xml just want to double check the entry.
    cheers
    James

  • Empty Message Handling with Receiver File adapter

    Hi,
         We were using the "Empty-Message-Handling" (status set to Ignore) of Receiver file adapter to stop a 0 KB file from being written to the specified directory.
    However, inspite of this, a 0KB file continues to be written.
    The specifications are given below-
    File Construction Mode - Add Time Stamp
    Put File - Directly
    Empty Message Handling - Ignore
    Maximum Concurrency - 1
    File Type - Binary
    Can anyone please help with this.
    Thanks and Regards,
    Shiladitya

    HI,
    In one of thread the same problem was coming. Just look at the thread.
    Receiver file adapter creates empty files, Empty-Message Handling SP19
    Or
    Follow the weblog for the same requirement.
    /people/gowtham.kuchipudi2/blog/2006/01/13/stop-creation-of-an-empty-file-from-file-adapter-using-module
    Thnx
    Chirag
    Reward points if it helps.

  • How to handle rejected messages in file adapter

    Hi....! every one.........
    in file adapter read operation it will pick the files even the file contains unstructure message but that file wont be processed.
    where the rejected message goes.
    i have requirement like that rejected message i have to store in another file
    please provide me answer..........

    Hi,
    You can add the parameter 'PhysicalErrorArchiveDirectory' in the JCA file (of the File Adapter).
    Put there the required directory where you want the rejected file to be sent.
    You can add this property in 2 ways:
    1. In your JDeveloper open the JCA file and add: <property name="PhysicalErrorArchiveDirectory" value="/../.."/>
    2. In EM, right click the composite->Service/Reference Properties->Choose your file->On the Properties tab press Add-> Choose 'PhysicalErrorArchiveDirectory' and put the directory-> press Apply.
    Arik

  • Receiver File adapter - 'Empty Message Handling' option to ignore not worki

    Hi,
      I am trying to create the Files in receiver based on condition.But I am gettiung error in communication channel when there is no payload. Receiver I am usuing FCC and processing tab I selected -'Empty Message Handling' option to ignore .
    one source -> Target 1 (0..1 occurance in signature tab changed, message mapping and operation mapping)
                 and Target 2 (0..1 occurance in signature tab changed)
    and I put the message type level condition. While creating first message If did not create the Message type in my maaping still my Receiver File communication channel is giving error. even thow I my receiver interface occurance is 0..1
    Right now I am in PI7.1 and SP7 is the bug for support pack do I am missing any thing. and do I need to upgrade any nwe patch. appreciate your help.
    Regards,
    Venu.

    Hi,
    here is the my requirment one source -> two target interfacess (0..1)
    If u have 2 target interfaces,then this is not suffice..... u should make it as 0..unbounded both in operation mapping and message mapping.
    But based on ur requirements posted above i guess u have only one inbound interface at a time based on some conditions....
    But,
    <messages>
    <messages1>
    based on condition first message type not created in mapping.
    <messgaes2>
    The error u r getting is because.... u want only one interface in target at a time....
    Then u should not generate Message1 also in the target.
    So avoid mapping to message1 if u want only message2.
    If both message1 and message2 are created in target means... it is triggering for two interfaces.... so avoid one message1 or message2... based on some conditions u have..
    Still nt solved do post...
    Babu

  • Duplicate message handling in the sender file adapter

    Hi,
    I enabled duplicate file handling check in the sender file adapter so that whenever there is a duplicate file it should send me an alert also it should disable the channel so that i do not get that duplicate file alert message again and again.
    My question is will it activate the channel again as soon as a new file arrives or do i need to manually do that.
    Michal's PI tips: Duplicate handling in file adapter - 7.31

    Hi Hema,
    You will have to activate the channel manually. The idea behind the 'disable' functionality is to avoid further file processing through that channel which can only start once the channel is activated again manually.
    Regards,
    Abhishek

  • Empty-Message Handling is not working in receievr File Adapter

    Hi All,
    I have selected "Empty-Message Handling" = 'Ignore'in Receiver File adapter, but still empty files are creating in target directory.
    Message mapping generates output based on the conditon, if the condition is 'false' mapping will generate empty file (no data is being mapped).
    Why Receiver file adapter is processing empty fiels even i set 'ignore' empty fiels in configuration (ID)?
    Hoe can i manage not to place empty fiels in target directory?
    File type is '.txt'
    Your help would be appreiciated greatly.
    Thanks,
    Rajesh

    Not sure why is it not working. Make sure the channel is activated and cache is refreshed properly. But as a workaround you may use OS script checking for size of message and deleting it or configure a BPM to avoid the file creation. Or else an adapter module as shown
    /people/gowtham.kuchipudi2/blog/2006/01/13/stop-creation-of-an-empty-file-from-file-adapter-using-module
    Regards,
    Prateek

  • How to get rejected file absolute path location in file rejection handler

    HI,
    Right now I am working in the below scenario in SOA11G.
    1) Create a file adapter service and wire it to a BPEL process.
    2) Create a Fault-policies file where we have referred a Java Action as a Fault policy.
    3) Refer that fault-policy to the Fault-Binding file and put both the file in the same directory with composite.xml file.
    4) So when any rejection message happened with any wrong incoming file, the Java Action is getting called.
    But as per my requirement I want to get the absolute path of the incoming file in my java action, so that I can write some other logic to copy that file to some other location.
    So is there any API available to achieve this or any logic about how to get the absolute path of a rejected file at runtime.
    Regards,
    Tripathy.

    Hi Omar,
    You need to use OPEN_DATASET & READ DATASET statements to get the file from application server.
    Steps:
    Open dataset in read mode
    Read the data set and collect into internal table
    Now, convert this into XSTRING by using function module SCMS_STRING_TO_XSTRING
    After converting into XSTRING, you can use CL_WD_RUNTIME_SERVICES=>ATTACH_FILE_TO_RESPONSE to download into local system
    Please refer the below links
    Upload File from SAP Application Server using ABAP
    Application Server Program - ABAP Development - SCN Wiki
    Hope this helps you.
    Regards,
    Rama

  • How to store the rejected messages in bpel using file adapter

    Hi all,
    I am using the file adpter to read the text file.In file some bad messages are there.
    now i can read the correct data.but i can't view rejected messages.
    if im not using "rejectedmessagehandler" , but it is stored in default directory.
    In my application,correct messages are reading but bad messages are not stored in default directory.
    pls can you help on that rejected messages store

    Hi
    You have to define rejectedMessageHandlers in activation agent part of ur fileadpater in bpel.xml.
    ex:
    *<activationAgent*
    className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent"
    partnerLink="UrPartnerLinkName">
    *<property name="rejectedMessageHandlers">*
    file://YourFolderStructure (Where you want to save your rejected messages... Only folder structure)
    *</property>*
    *</activationAgent>*
    If u have any rejected messages those will be written to a file named as INVALID_MSG_ + process-name + operation-name + current-time in the above structure
    Regards
    PavanKumar.M

  • Rejected Message in BPEL

    Hi
    Normally, when any file is rejected in BPEL, the file is sent to rejected message folder in JCA. Is there any size limit to this JCA folder?
    I am working on a process, till yesterday the messages were getting rejected correctlyand were going to this folder. But I am not able to somehow get this going today.
    Can anyone suggest anything?
    Regards,
    Ketan

    Hi,
    I got the following answer from Metalink / BPEL Software Enginneering:
    "+The issue is not related with the JMSRedelivered flag. Actually that is the out of box behavior of the adapter in 10.1.3.4 and beyond. When a PCResourceException is encountered that will in turn result in the rollback of global transaction. Adapter will make a note of the message id in this case. Because of the rollback the dequeue will not get committed and message gets rolled back to the source queue. On the subsequent dequeue of the same message adapter will in turn reject the message and the message is handled by the rejection handler. So what you are seeing is the correct behavior of the adapter.+"
    So this behavior that I'm experiencing is NOT related to JMSRedelivered header but to the message id,
    and this is working as designed - unfortunately.
    Regards
    Christian

  • Advantages of Using Queued Message Handler vs. Standard State Machine

    Hello,
    What are the advantages of using a Queued Message Handler?  Also, why are they more powerful than using Standard State Machines?
    Thanks!

    They are really just sort of an extension of a state machine.  The general idea is that you have one loop doing a specific job.  You then use a queue to tell it how/when to do this job.  For instance, I might have a log file loop.  I will send it commands to open a file, write some data, write some more data, and finally close the file.  Each of those commands are coming from the queue.  The beauty with this setup is that anybody that can get a reference to that queue can send the command to that loop.
    So the QMH is "better" than a state machine mostly because of the decoupling of functions.  In a given application, I will have a loop for log file writing, GUI updates, reading of a DAQ, instrumenet communications, server communications, etc.  Trying to do all of that in a single loop state machine is a major pain in the rear end.  Seperating them out makes life so much easier.
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Fault name for Rejection Messages in Fault policy.

    Hi ,
    I am trying to do my fault handling for Rejected messages .I am bit confused what is the fault name i should specify for rejection messages .
    Say for BPEL , We have bpelx:binding fault etc for BPEL ..
    <faultName xmlns:rjm="http://schemas.oracle.com/sca/rejectedmessages" name="rjm:[?????????????] ">
    <condition>
    <action ref="writeToFile"/>
    </condition>
    </faultName>
    </Conditions>
    Regards ,
    Naga

    It should be the "service name" for the inbound adapter in the composite. Here is the doc link which explains this: http://download.oracle.com/docs/cd/E14571_01/integration.1111/e10231/life_cycle.htm#TKADP187.
    regards,
    Sandeep

  • Java exception appear during file adapter to handle large xml

    Hi,Guys,
    I am using file adapter to poll one folder of my local.one get input.xml,then do something,then write out output.xml.
    input.xml format is :
    <mes:DataRequestIns xmlns:mes="http://xml.netbeans.org/schema/MessageDefined">
    <!--1 or more repetitions:-->
         <mes:DataIns>
              <mes:address>Ang Mo Kio 5,63 street</mes:address>
              <mes:birthday>14/12/1970</mes:birthday>
              <mes:firstName>Sing1</mes:firstName>
              <mes:gender>0</mes:gender>
              <mes:ID>1001</mes:ID>
              <mes:lastName>NorthMan</mes:lastName>
              <mes:postcode>2002</mes:postcode>
              <mes:telephone>6665222</mes:telephone>
              <mes:surname>Sur</mes:surname>
              <mes:status>single</mes:status>
              <mes:location>sgp</mes:location>
              <mes:HP1>11111</mes:HP1>
              <mes:HP2>22222</mes:HP2>
              <mes:passport>123456878</mes:passport>
              <mes:company>ST</mes:company>
              <mes:department>TO</mes:department>
              <mes:occupation>engineer</mes:occupation>
              <mes:experience>10</mes:experience>
              <mes:level>2</mes:level>
              <mes:certificate>high</mes:certificate>
              <mes:specialisation>computer</mes:specialisation>
              <mes:staffNumber>1020</mes:staffNumber>
              <mes:fax>00200</mes:fax>
              <mes:email>[email protected]</mes:email>
              <mes:national1>sgp</mes:national1>
              <mes:national2>sgp</mes:national2>
              <mes:interestingField>bpel</mes:interestingField>
              <mes:national>earth</mes:national>
              <mes:oversea>yes</mes:oversea>
         </mes:DataIns>
    <mes:DataIns>
    </mes:DataIns>
    </mes:DataRequestIns>
    if my input.xml contain less than 1000 records,then it's working,once greater than 1000,then appear exception.for normal case ,must have more than 10000 records need to handle,and file size is 11.2MB.
    so,Does any other way or how to use file adapter to handle it ?
    thank you
    exception :
    SEVERE: An error occured while scanning for the next trigger to fire.
    org.quartz.JobPersistenceException: Failed to obtain DB connection from data sou
    rce 'soaNonManagedDS': java.sql.SQLException: Could not retrieve datasource via
    JNDI url 'jdbc/SOALocalTxDataSource' weblogic.jdbc.extensions.ConnectionDeadSQLE
    xception: weblogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.
    ResourceException: Could not create pool connection. The DBMS driver exception w
    *as: Socket read timed out [See nested exception: java.sql.SQLException: Could no*
    *t retrieve datasource via JNDI url 'jdbc/SOALocalTxDataSource' weblogic.jdbc.ext*
    *ensions.ConnectionDeadSQLException: weblogic.common.resourcepool.ResourceDeadExc*
    *eption: 0:weblogic.common.ResourceException: Could not create pool connection. T*
    *he DBMS driver exception was: Socket read timed out]*
    at org.quartz.impl.jdbcjobstore.JobStoreCMT.getNonManagedTXConnection(Jo
    bStoreCMT.java:167)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLoc
    k(JobStoreSupport.java:3652)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.acquireNextTrigger(JobSt
    oreSupport.java:2654)
    at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:
    *235)*
    Caused by: java.sql.SQLException: Could not retrieve datasource via JNDI url 'jd
    bc/SOALocalTxDataSource' weblogic.jdbc.extensions.ConnectionDeadSQLException: we
    blogic.common.resourcepool.ResourceDeadException: 0:weblogic.common.ResourceExce
    ption: Could not create pool connection. The DBMS driver exception was: Socket r
    ead timed out
    another exception:
    Message handle error.
    error while attempting to process the message "com.collaxa.cube.engine.dispatch.
    message.invoke.InvokeInstanceMessage"; the reported exception is: Transaction Ro
    lledback.: weblogic.transaction.internal.TimedOutException: Transaction timed ou
    t after 302 seconds
    BEA1-3468FC5E3C698D2A82F7
    at weblogic.transaction.internal.ServerTransactionImpl.wakeUp(ServerTran
    sactionImpl.java:1742)
    at weblogic.transaction.internal.ServerTransactionManagerImpl.processTim
    edOutTransactions(ServerTransactionManagerImpl.java:1609)
    at weblogic.transaction.internal.TransactionManagerImpl.wakeUp(Transacti
    onManagerImpl.java:1885)
    at weblogic.transaction.internal.ServerTransactionManagerImpl.wakeUp(Ser
    verTransactionManagerImpl.java:1519)
    at weblogic.transaction.internal.WLSTimer.timerExpired(WLSTimer.java:35)
    at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTunin
    gWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    *; nested exception is: weblogic.transaction.internal.TimedOutException: Transact*
    ion timed out after 302 seconds
    BEA1-3468FC5E3C698D2A82F7
    This error contained an exception thrown by the message handler.
    Edited by: aris yu on Dec 27, 2009 11:55 PM

    Hi,
    we have to explicitly mention batch while configuaring file adapter.
    i.e. in step 5 : Check file contains multiple messages and mention how many messages u want to process in a batch.
    i.e. if you have 10000 msgs in ur file mention the size as 500. Then it will read 10000 records in 20 batches.
    Now while writing to a file use Append=true property.
    U have to add this property to fileadapter.wsdl (in jca:operation tag) which will be created when u complete the configuaration of file adapter with write operation.
    Regards
    PavanKumar.M

Maybe you are looking for

  • Com.sap.aii.af.ra.ms.api.DuplicateMessageException - Msg Successful

    Hi all, We have a scenario where JDBC sender adapter polls - DB2 data base. Picks up the records. Updates the records.Messages are sent out. Everything is fine. The message is sent to IE and then to the receiver. But I see a com.sap.aii.af.ra.ms.api.

  • Not installed properly

    I have the macbook where the iLife was preinstalled. i did the system update already but when i try to make my own music through the preset 'beats' it says it must be installed first but when i click on updates for garage band it says it is up to dat

  • Help transfering files from IMovie to NAS (Synology)

    Hi, Hopefully someone here can help me, I am interested to move my IMovie events to my Synology NAS, I am not interested in using the NAS as a server for IMovie, I plan to view these videos independently of my Mac. Initially I have copied the files o

  • 9iAS(1.0.2.0.0) and 8.1.7 on one machine

    Hi i'm running 8.1.7 on Suse 7.1 the database is up and running but if i install Apllication server on it the portal 3.0 tool fails.I did configure the listener.ora,tnsnames.ora and init.ora files - Should i install 9iAS as a different user? - change

  • How to open screen for Smart Bookmarks Bar add-on

    I downloaded Smart Bookmarks Bar but there is no instruction as to accessing the screens shown as the ones for filling in preferences. I looked in profiles but nothing shows as being related to this name. It appears to need my preferences but no inst