OO4O in VB for dequeue

I am using OO4O in VB for dequeue. When I am doing abnormal termination in VB application, dequeue monitor still exists (Session is still active in DB). So, When ever, I am doing enqueue, terminated VB queue monitor is executed and dequeued that information from queue table.
When doing abnormal termination in VB, usually application will close Database connection also. But in case of queue, it is not happening.
Can anybody help me to solve this problem?
Radha Krishnan.

Hello,
I might be wrong but would this not be handled by setting SQLNET.EXPIRE_TIME = 10 in your sqlnet.ora. (10 equates to 10 minutes).
Then when the client dies the server will know and tidy up.
Thanks
Peter

Similar Messages

  • Waiting for "Dequeue" from "dequeueOperationService". Asynchronous callback

    I have created BPEL process which will take input from BPEL console client, put this message into queue using enqueue operation of AQ adaptor.Then i have recieve activity in the same BPEL process to dequeue message from the same queue.
    Process is deployed successfully. When I initiate BPEL process through BPEL console client, the message is enqueued properly into queue but when control come to recieve activity of my process i am getting error like this "Waiting for "Dequeue" from "dequeueOperationService". Asynchronous callback" .
    Can you please tell me what is the problem? How can resolve this issue to work my BPEL process fine.
    Thank you. It would be great help.

    Hello,
    I have got the same problem. I tried set-up CorrelatonSet, but I could not find solution ... Receive activity is still waiting for dequeue from AQ (and what's more - message is removed from queue by AQ adapter immediately after BPEL process is deployed. Receive acitivity hasn't information about this dequeue - it's still waiting).
    Could you pls. write more information???
    Many thanks,
    martin

  • Problem for Dequeue

    Hi All,
    I am creating Asynchronous web service using AQ Adapter. Enqueue working but dequeue (Receiving activity "waiting for dequeue asynchronous call back) why that receive activity not receiving the dequeue message but queue table dequeue working good only problem is that dequeue and receive activity. If any bodies knows give me needful.

    Hi All,
    Script for queue table
    BEGIN
    DBMS_AQADM.CREATE_QUEUE_TABLE
    QUEUE_TABLE => 'HT_XML_DEQUEUE_TABLE'
    ,QUEUE_PAYLOAD_TYPE => 'SYS.XMLTYPE'
    ,COMPATIBLE => '10.0.0'
    ,STORAGE_CLAUSE => '
    TABLESPACE ALAPDATA
    PCTUSED 40
    PCTFREE 10
    INITRANS 1
    MAXTRANS 255
    STORAGE (
    INITIAL 64K
    MINEXTENTS 1
    MAXEXTENTS 2147483645
    PCTINCREASE 0
    FREELISTS 1
    FREELIST GROUPS 1
    BUFFER_POOL DEFAULT
    ,SORT_LIST => 'ENQ_TIME'
    ,MULTIPLE_CONSUMERS => FALSE
    ,MESSAGE_GROUPING => 0
    ,COMMENT => 'HUMANTASK ASYNCHRONOUS WEB SERVICE'
    ,SECURE => FALSE
    End;
    Script for Queue
    BEGIN
    SYS.DBMS_AQADM.CREATE_QUEUE
    QUEUE_NAME => 'HT_XML_DEQUEUE'
    ,QUEUE_TABLE => 'HT_XML_DEQUEUE_TABLE'
    ,QUEUE_TYPE => SYS.DBMS_AQADM.NORMAL_QUEUE
    ,MAX_RETRIES => 5
    ,RETRY_DELAY => 0
    ,RETENTION_TIME => 0
    ,COMMENT => 'HUMANTASK ASYNCHRONOS WEB SERVICE'
    END;
    BEGIN
    SYS.DBMS_AQADM.START_QUEUE
    QUEUE_NAME => 'HT_XML_DEQUEUE'
    ,ENQUEUE => TRUE
    ,DEQUEUE => TRUE
    END;
    I Enqueue from BPEL is ok , the problem only dequeue(Oracle queue table dequeue the message) that BPELConsole receive activity waiting for "Dequeue" from "Aq_name" from asynchronous callback . After i click BPELConsole "Interaction" that Dequeue schema form display there i fill the form and click the "Post xml message" process continue but i need that receive activity don't wait automatically pick up the dequeue message and continue the BPEL process(Exception, Error not coming).I try pick activity onMessage also same like receive activity. Correlation, Adapter header also used properly. If any bodies knows please do me needful.

  • AQ: Best practice for dequeuing a queue

    Is it a good way to create a job that uses dequeue on the queue-table (each 30 second).
    But the procedure called in the job has an endless-Loop which runs as long as the database runs. So the job didn't restart all 30 seconds...
    This is the technique I found and now it's important for me to get a feeling, what is the best way to handle the dequeues
    regards
    Gerd

    Nothing better than packaging them and using Dropbox to share. I caution you
    on one thing as far as packaging:
    http://indesignsecrets.com/file-packaging-feature-can-cause-problems-in-dps-
    workflows.php

  • OO4O not support for Vietnamese ?

    I have a tired problem.
    Our application is building by VB and used OO4O to manipulate data.
    Although SQL Plus and others application have worked well with Vietnamese (VN8VN3)but our application not done. All Vietnamese characters have changed to ? character.
    We have tested with oip8 and oip9. (Our DB is 8i)
    Please tell me as soon as posible.
    Thanks

    It work fine for me.
    Please change NLS_LANG=AMERICAN_AMERICA.VN8VN3

  • Finding the reason for dequeued calls?

    We're using UCCX8.  In Supervisor Desktop, we show a few calls as Dequeued.  The help pages define dequeued as...
    Number of calls that were dequeued. A call is considered to be dequeued from a particular CSQ if the call is handled by an agent in another CSQ. This situation can occur when a call is queued for more than one CSQ.
    However I don't believe that is the case for us.  We don't queue a call for more than one CSQ.  Searching the forus here I found that it could also be marked as dequeued if you use the dequeue step (we don't), or if the call was transfered (our script doesn't do that).
    So I'm stumped.  I produced a CSQ ActivityReport in Historical Reporting which showed the calls to be "Calls handled by other" -- which the HR User Guide says is:
    Total of the following calls:
    •Calls queued for the CSQ, then dequeued by the Dequeue step in a workflow, then marked as handled by the Set Contact Info step in the workflow.
    •Calls queued for more than 1 CSQ and then handled by another CSQ.
    So this is still a bit of a mystery, since I didn't think our script should be doing either of those.  Sounding like a script error.  How can I troubleshoot these calls?  Most of the HR reports seem to focus on only handled or abandonded calls.  How can I track down these dequeued calls to see what happened?
    Thanks

    Bump ahahhaha
    does anybody knows?

  • Enqueue for dequeueing one a second

    I am trying to dequeue messages at one a second, by enqueueing them with a delay. I am testing this with a script that first enqueues a number of messages, then dequeues them in a loop. The total time of the loop is greater than the amount of messages in seconds. However, the individual timestamps don't seem to work that way. I would like to know why that is the case, and if there is a way to prove the actual timestamp.
    The example script:
    CREATE OR REPLACE TYPE Moo AS OBJECT(Moo NUMBER(2));
    EXEC DBMS_AQADM.CREATE_QUEUE_TABLE(Queue_Table => 'Cow', Queue_Payload_Type => 'Moo');
    EXEC DBMS_AQADM.CREATE_QUEUE(Queue_Name     => 'Oink', Queue_Table => 'Cow');
    EXEC DBMS_AQADM.START_QUEUE('Oink');
    CREATE OR REPLACE FUNCTION Enqueuer
               I_Payload     Moo,
               I_Delay     BINARY_INTEGER     DEFAULT 0
    RETURN RAW
    AS
      Enqueue_Options     DBMS_AQ.Enqueue_Options_T;
      Message_Properties     DBMS_AQ.Message_Properties_T;
      Message_Handle     RAW(16);
    BEGIN
      Enqueue_Options.VISIBILITY     := DBMS_AQ.IMMEDIATE;
      Message_Properties.DELAY     := I_Delay;
      DBMS_AQ.ENQUEUE
       Queue_Name          => 'Oink',
       Enqueue_Options     => Enqueue_Options,
       Message_Properties     => Message_Properties,
       Payload          => I_Payload,
       MsgId          => Message_Handle
    RETURN Message_Handle;
    END;
    CREATE OR REPLACE PROCEDURE Dequeuer
    AS
      Dequeue_Options     DBMS_AQ.Dequeue_Options_T;
      Message_Properties     DBMS_AQ.Message_Properties_T;
      Message_Handle     RAW(16);
      Payload          Moo;
    BEGIN
      DBMS_AQ.DEQUEUE
       Queue_Name          => 'Oink',
       Dequeue_Options     => Dequeue_Options,
       Message_Properties     => Message_Properties,
       Payload          => Payload,
       MsgId          => Message_Handle
      DBMS_OUTPUT.PUT_LINE('<' || LPAD(Payload.Moo, 2, '0') || '> ' || TO_CHAR(SYSTIMESTAMP, 'MI:SS.FF3'));
    END;
    SELECT Enqueuer(Moo(LEVEL), LEVEL + 5) FROM Dual CONNECT BY LEVEL <= 25;
    EXEC FOR Quack IN 1..25 LOOP Dequeuer; END LOOP;
    DROP FUNCTION Enqueuer;
    DROP PROCEDURE Dequeuer;
    EXEC DBMS_AQADM.STOP_QUEUE('Oink')
    EXEC DBMS_AQADM.DROP_QUEUE('Oink')
    EXEC DBMS_AQADM.DROP_QUEUE_TABLE('Cow')
    DROP TYPE Moo;The output:
    <01> 00:09.171
    <02> 00:09.171
    <03> 00:11.171
    <04> 00:11.171
    <05> 00:14.171
    <06> 00:14.171
    <07> 00:16.171
    <08> 00:16.171
    <09> 00:18.171
    <10> 00:18.171
    <11> 00:20.171
    <12> 00:20.171
    <13> 00:22.171
    <14> 00:22.171
    <15> 00:24.171
    <16> 00:24.171
    <17> 00:26.171
    <18> 00:26.171
    <19> 00:28.171
    <20> 00:28.171
    <21> 00:30.187
    <22> 00:30.187
    <23> 00:32.171
    <24> 00:32.171
    <25> 00:34.171
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:32.98It seems to be doing two messages every two seconds, but they have the same timestamp.

    Hello,
    in this case it is not a good idea to control the dequeue using the enqueue delay option. You rely on that there is no time difference
    between enqueuing all rows and dequeueing them. It should be better to have a time control for queueuing.
    There is an option WAIT in the dequeue record DBMS_AQ.Dequeue_Options_T.
    An easy solution would be just to wait for 1 sec. after each dequeue:
    BEGIN
      FOR Quack IN 1..25
      LOOP
       DBMS_LOCK.SLEEP(1);
       Dequeuer;
      END LOOP;
    END;
    <01> 32:48.503
    <02> 32:49.505
    <03> 32:50.506
    <04> 32:51.508
    <05> 32:52.509
    <06> 32:53.511
    <07> 32:54.513
    <08> 32:55.514
    <09> 32:56.516
    <10> 32:57.518
    <11> 32:58.520
    <12> 32:59.521
    <13> 33:00.523
    <14> 33:01.525
    <15> 33:02.526
    <16> 33:03.527
    <17> 33:04.529
    <18> 33:05.530
    <19> 33:06.532
    <20> 33:07.533
    <21> 33:08.535
    <22> 33:09.536
    <23> 33:10.538
    <24> 33:11.540
    <25> 33:12.541
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:25.07Kind regards,
    WoG

  • Oracle 8i Lite - OO4O and other Questions

    1.) Can OO4O (Oracle Objects for OLE) be used with the Oracle 8i Lite database ?
    2.) Does Oracle 8i Lite operate as a "client/server" database ?
    3.) Is it possible to have multi-user access to Oracle 8i Lite ?
    4.) Is there documentation somewhere that lists all of the limitations with 8i Lite as compared to 8i ?
    We are in the planning stages of a partial mobile system, and want to know how much difference in development efforts for the 2 platforms (Oracle 8i on Win 2000 server and Oracle 8i Lite on NT/98/95 Laptops).
    Any information on Oracle 8i Lite would be appreciated. -- Especially need an answer to question 1 right now.
    Thanks,
    Paula

    Hi,
    I am qouting below from the oracle 8i Lite documentation which says it supports triggers . Please clarify.
    Oracle Lite DBMS
    Oracle Lite DBMS is a lightweight (50KB - 750KB), Java enabled database designed from the ground up for laptops, handheld computers, PDAs and smartphones. It supports industry standard ODBC, JDBC, SQLJ, and Java Stored Procedures and Triggers. It provides a streaming fast "C" interface, OKAPI, to its object kernel. It also supports Java Access Classes, JAC, a fast and easy way to make Java Objects persistent. Oracle Lite DBMS now supports all popular mobile platforms, including Palm OS, EPOC, and Windows CE, letting you deploy enterprise applications on virtually any mobile device.
    Regards
    null

  • Issue in dequeuing messages on Linux using AQjmsTextMessage_C.getFactory().

    Hi All,
    This is regarding issue related to Dequeuing of message from AQ on Linux platform using JAVA API. Our appliaction is sending message on AQ which has queue payload type of type 'SYS.AQ$_JMS_TEXT_MESSAGE'. For dequeuing of this message we are using method AQjmsTextMessage_C.getFactory() that returns CustomDatumFactory.
    The code snippet is as follows:
    AQDequeueOption dequeueOption = new AQDequeueOption();
    message = ((AQOracleQueue)l_queue).dequeue(dequeueOption,AQjmsTextMessage_C.getFactory());
    The code is working fine on Windows environment. I ran the code from JDev IDE and also from batch file which was hitting the Oracle AQ installed on Linux environment. In both the case either through IDE or through batch file the code is running properly.
    The same code on Linux is not working properly i.e. when the method AQjmsTextMessage_C.getFactory() is called we are not able to get the CustomDatumFactory. We are not getting any errors/exceptions and the control is directly going to finally block of our method and we are not getting the message from AQ. We tried with different jar files that contain the AQjmsTextMessage_C class but still not able to figure out the issue(The jar files used are viz. aqapi.jar,aqapi12.jar,aqapi13.jar,aqapi_g.jar,aqapi12_g.jar,aqapi13_g.jar).
    The script that we used for creating the queue is as follows:
    BEGIN
    dbms_aqadm.create_queue_table(
    queue_table=>'SAMPLE_T',
    queue_payload_type=>'SYS.AQ$_JMS_TEXT_MESSAGE',
    multiple_consumers => false,
    comment => 'Queue Table For Text Message'
    END;
    BEGIN
    dbms_aqadm.create_queue (
    queue_name => 'SAMPLE_Q',
    queue_table => 'SAMPLE_T');
    END;
    BEGIN
    dbms_aqadm.start_queue (queue_name=>'SAMPLE_Q');
    END;
    Please let me know if you have faced such issue on Linux environment or have any pointers about the same.
    Regards,
    Abhishek

    If "control is directly going to finally block" there must be some (unchecked) runtime exception. Catch it.
    try{
      AQDequeueOption dequeueOption = new AQDequeueOption();
      message = ((AQOracleQueue)l_queue).dequeue(dequeueOption,AQjmsTextMessage_C.getFactory());
    } catch (Throwable t) {
      t.printStackTrace()
    }You probably just don't have native code in the library path.

  • How to check for errors in starting workflow from plsql?

    Hi All,
    I am using the below code to start a custom workflow.
    DECLARE
    l_itemtype VARCHAR2(30) := 'XXPWA';
    l_itemkey  VARCHAR2(30) := '1116410C';
    error_code VARCHAR2(2000);
    error_msg  VARCHAR2(2000);
    BEGIN
        wf_engine.createprocess(l_itemtype, l_itemkey, 'XX_WEBADI_APPROVAL');
        wf_engine.setitemuserkey(itemtype => l_itemtype
                                ,itemkey  => l_itemkey
                                ,userkey  => 'USERKEY: ' || '1116410C');
        wf_engine.setitemowner(itemtype => l_itemtype
                              ,itemkey  => l_itemkey
                              ,owner    => 'SYSADMIN');
        wf_engine.setitemattrnumber(itemtype => l_itemtype
                                   ,itemkey  => l_itemkey
                                   ,aname    => 'BATCH_ID'
                                   ,avalue   => 1116410);
        wf_engine.startprocess(l_itemtype, l_itemkey);
    EXCEPTION
    WHEN OTHERS THEN
    error_code := SQLCODE;
    error_msg  := SQLERRM(SQLCODE);
    dbms_output.put_line(error_code||error_msg);
    END ;
    The script completes successfully without errors.
    I am sending a notification from this workflow. I can see the records getting created in tables like WF_NOTIFICATIONS and WF_ITEM_ATTRIBUTE_VALUES. But i cannot see any thing if i query from Status Monitor. Also I am not getting the said notifications. How can i find what is the issue?

    Hi Manu,
    Thanks for sharing the information, If you think of speeding up finding were exactly your notification is struck, You can use the below query (Input parameter would be your notification id), Hope this information is good, I liked this very much, the way it was narrated.
    SELECT n.begin_date,
           n.status,
           n.mail_status,
           n.recipient_role,
           de.def_enq_time,
           de.def_deq_time,
           de.def_state,
           ou.out_enq_time,
           ou.out_deq_time,
           ou.out_state
      FROM applsys.wf_notifications n,
           (SELECT d.enq_time def_enq_time,
                   d.deq_time def_deq_time,
                   TO_NUMBER((SELECT VALUE
                               FROM TABLE(d.user_data.parameter_list)
                              WHERE NAME = 'NOTIFICATION_ID')) d_notification_id,
                   msg_state def_state
              FROM applsys.aq$wf_deferred d
             WHERE d.corr_id = 'APPS:oracle.apps.wf.notification.send') de,
           (SELECT o.deq_time out_deq_time,
                   o.enq_time out_enq_time,
                   TO_NUMBER((SELECT str_value
                               FROM TABLE(o.user_data.header.properties)
                              WHERE NAME = 'NOTIFICATION_ID')) o_notification_id,
                   msg_state out_state
              FROM applsys.aq$wf_notification_out o) ou
    WHERE n.notification_id = &NOTIFICATION_ID
       AND n.notification_id = de.d_notification_id(+)
       AND n.notification_id = ou.o_notification_id(+)
    This single query links all together and shows you the current state of the message.
    Column 5 & 6 shows the enqueue & dequeue time of WF_DEFFERRED queue.
    Column 7 shows the message status in WF_DEFFERRED
    Column 8 &  9 shows the enqueue & dequeue time of WF_NOTIFICATIONS_OUT queue.
    Column 10 shows the message status in WF_NOTIFICATION_OUT.
    Below is the sequence of activities going on between the PL/SQL trigger of the business event and the e-mail received from notification mailer in the tail -end
    1. EBS user sends email – To send an email EBS modules use standard API. Email API is implemented in PL/SQL package WF_NOTIFICATION (I will cover it in the next article).
    1.1. Provides application data – First of all user’s session inserts business data (recipient, message type, message text etc.) into WF_NOTIFICATIONS table (do not mix up with PL/SQL package mentioned above);
    1.2. Defers processing Generates event – a user or process leaves EBS to run further email processing steps. It is done using a Business Events System (BES). Session raises an event k“oracle.apps.wf.notification.send” via the WF_EVENT PL/SQL package (BES processing to be covered in the next articles). Each deferred event is put in one of the two Advanced Queues WF_DEFERRED or WF_JAVA_DEFERRED for further processing. All email sending events go through the WF_DEFERRED queue.
    2. Deferred Agent Listener – is a process responsible for ALL BES events processing. It executes all deferred events calling subscriptions’ functions defined for each business event. There are several more things to explain about Agent Listeners and subscription processing (e.g. there are several differed agents, subscriptions groups etc.) This is one more subject for further articles.
    2.1. Reads event and starts subscriptions processing – Strictly speaking there is no any enabled subscription for the “oracle.apps.wf.notification.send” event (submitted during the first step). This event is a part of “oracle.apps.wf.notification.send.group” event group. The Deferred Agent executes subscriptions for that group rather than for the stand alone event. At this stage the Agent knows that it should process the notification with given notification id (it is a part of the event data passed via the event).
    2.2. Reads application data – in order to generate the email/notification the Agent reads business data from the WF_NOTIFICATIONS table and a few related tables and during the next step builds up the email’s text in XML format.
    2.3. Generates data for outbound interface – This is the last step executed by the Deferred Agent Listener. It generates XML representation of email to be sent and together with other important bits of information posts it to the Notification Mailer outbound queue WF_NOTIFICATION_OUT.
    3. Notification Mailer – As you see it was a long journey even before we started to talk about the Notification Mailer. There are a lot of things which may go wrong and this is why it is important to know the whole flow of the events to troubleshoot the mail sending functionality in EBS. We’ve come to the last processing step before the message leaves EBS boundaries.
    3.1. Reads message – the Notification Mailer dequeues messages fromWF_NOTIFICATION_OUT queue on regular basis. In fact this is the only place where it looks for the new messages to be sent. This means if a notification doesn’t has a corresponding event ready for dequeuing in the WF_NOTIFICATION_OUT queue it will never be send. As soon as a new message arrives Notification Mailer dequeues it and gets prepared for sending;
    3.2. Sends email via SMTP – This is the step when the message leaves EBS. The Notification Mailer sends the email using text retrieved from the advanced queue during previous step;
    3.3. Updates status – as the last step in the notification sending process the Notification Mailer updates a MAIL_STATUS column in WF_NOTIFICATION table.

  • How to set property for Cluster Environment for JMS Adapter

    Hi All,
    I am moving from DEV to Prod environment which is cluster.
    Can you Please explain me what property I need to Set for Cluster Environment for JMS Adapter, so that I could avoid race condition for Dequeue/enqueue.
    I am using soa suite 10.1..3.4
    Thanks in Advance.
    Edited by: vikky123 on Jul 12, 2010 7:03 AM

    put something like this
    <activationAgents>
          <activationAgent className="oracle.tip.adapter.fw.agent.jca.JCAActivationAgent" partnerLink="PARNERLINKNAME">
            <property name="clusterGroupId">SOMEUNIQUEVALUE</property>
            <property name="portType">PARTNERLINK_PORTTYPE</property>
          </activationAgent>
        </activationAgents>

  • How to rollback AQ dequeue operations in BPEL

    Hi,
    For a service i initially started using an Oracle AQ Adapter for dequeueing messages from an Oracle AQ. This works fine, only when processing of the message fails, i have to rollback the dequeue operation. Although that Oracle AQ Adapters do support XA, it do not see a way (documented in oracle docs, google etc) to force the rollback of that dequeue operation. Is it possible to rollback a dequeue operation using the oracle AQ Adapter?
    Secondly i tried it using an JMS Adapter. Herefore i created within a existing JMS Module a foreign server (WNSForeignServer) with
    - JNDI Initial Context Factor; oracle.jms.AQjmsInitialContextFactory
    - JNDI Properties: datasource=jdbc/CDB
    I created a new connection factory in WNSForeignServer: WNS_BERICHT_CF with
    - Local JNDI Name: aqjms/XAQueueConnectionFactory
    - Remote JNDI Name: XAQueueConnectionFactory
    I created a new destination in WNSForeignServer: wns_bericht_q with
    - Local JNDI Name: jms/aq/wns_bericht_q
    - Remote JNDI Name: Queues/WNS_BERICHT_Q
    Restarted the managed server
    WNS_BERICHT_Q is an existing queue which is also used by the configured (and working) AQ Adapter.
    In my composite i added a JMS Adapter using Oracle Advanced Queueing as JMS Provider and Consume Message as operation Type.
    The Destination Name is jms/aq/wns_bericht_q (visible when using the browse option)
    When putting messages on the queue the message is retrieved when using the Oracle AQ Adapter, but ik keep failing retrieving the messages using th JMS adapter.
    Any help/ideas is appreciated ! (in other words; HELP! ;-) )
    Cheers,
    Peter

    Hi Peter,
    There are long discussions on this topic on the following threads...
    Re: Message not deleting from Topic after successfully dequeue
    Re: SOA Composite dequeue not removing message from the queue.
    Hope this helps...
    Cheers,
    Vlad

  • Disable DSN for specific messages

    Hi,
    i have a problem, where i wish to disable DSN for specific internal users.
    Scenario :
    Interal User a sends a mail to special address c,
    if mail host of special address c is not available or anything else i wish that internal user a is never informed that c didnt recieve his mail.
    Can this be done ?
    i thought about doing this with sieve.. but i dont know if DSNs generated by the IMS Master itself are also checked by sieve mechanism....

    Please do notice that your bits do not support many of the features you want. And that later bits do. If you offer that to your company, perhaps you could update more often, or at least this time. We're not talking about a new package, here, but just an update to the one you have, that's not doing the job properly.
    Also, if you had asked for what you needed at the beginning, I could have helped you better.
    What you want is the sieve command, save-copy, or, perhaps monitor. Please see whitepaper, quoted below:
    Saving Messages for Document Retention
    If the reason you want to capture a copy of the message is for document retention, then you will want to take advantage of the new "capture" sieve action. You have to have iMS v5.2 or better to use this facility. The capture action can only be specified in a system or channel sieve; it is not available in user sieves. The general syntax is
    capture "monitoraddress"
    The monitor action is the same as the capture action. Users are encouraged to use the 'capture' instead of monitor as it best reflects the function being performed.
    This action sends a DSN containing the original message in its entirety to the specified capture address. Since this is a DSN it is effectively a completely separate message so there's little chance of it causing side effects that will alert anyone to the monitoring. In particular, no addresses from the original message appear in the DSN header so there's very little chance of the capture copy getting forwarded to the wrong person by mistake. And even though the original message is encapsulated, it is a MIME encapsulation which means the content is easily accessible in any MIME-compliant user agent.
    The capture action is nonstandard and undocumented. It was originally intended to be part of the habanero release, but the backporting of direct LDAP support to 5.2 means it is available in 5.2 as well. We certainly intend to support it in the future.
    Saving Messages for Replay
    There is an undocumented functionality in iMS for making a copy of messages for archival purposes. It's intended for saving sent messages in the event that they need to be replayed. We did this for folks who send mail via bad links to places where the mail may be received OK by an intermediate host but then subsequently lost on its way to the final destination.
    This is done with the MESSAGE-SAVE-COPY mapping table. Entries in that table have the form
    MESSAGE-SAVE-COPY
    out-channel|from-address|D|msg-filename result
    where
    out-channel -- name of the channel the message is flowing out
    from-address -- originator's address (envelope From: address)
    D -- the letter "D" (stands for "dequeue" )
    msg-filename -- name of the message file being dequeued.
    result -- where to rename the file
    Outbound Traffic
    To save only messages out to the Internet, do
    MESSAGE-SAVE-COPY
    tcp_local|*|D|/instance-root/queue/tcp_local/*/* (tab-or-space)$Y/msg_save/$1/$2
    Be aware that the archive isn't made until the message is actually dequeued from iMS (i.e., sent successfully or bounced). A rename operation is done (as opposed to a copy operation). As such, the message file has to remain on the same disk that the IMTA_QUEUE lives on.
    Inbound Traffic
    To capture inbound mail will want to have good control of what machines/pathways a message will take on its way into your systems. If your setup is such that mail always enters the site via an INBOUND relay and leaves the site via know outbound gateways, then inbound message flow is from INBOUND-MTA --> MsgStore machine.
    Since you can have multiple MsgStore machines behind any one INBOUND-MTA, you will want to make configuration on the INBOUND-MTA machine such that it will use a dedicated queue to talk to the MsgStore machines. For instance, on the INBOUND-MTA machine, you could setup a rewrite rule in your imta.cnf file for MsgStore-A, MsgStore-B, ... MsgStore-Z like:
    Node-A.store.domain.com.au $U%$D@tcp_to_store-daemon
    Node-Z.store.domain.com.au $U%$D@tcp_to_store-daemon
    and a corresponding 'tcp_to_store' channel which looks like:
    ! tcp_to_store
    tcp_to_store smtp mx single_sys subdirs 20 noreverse maxjobs 7 \
    pool SMTP_POOL maytlsserver allowswitchchannel \
    saslswitchchannel tcp_auth
    tcp_to_store-daemon
    This has the effect of routing all mail to any of your MsgStore machines through tcp_to_store channel. Transactions to other machines in your setup will take the tcp_intranet channel.
    With this in place you can then throw in a MSG-SAVE-COPY mapping table which reads:
    MESSAGE-SAVE-COPY
    *|*|D|/instance-root/imta/queue/tcp_to_store/*/* $Y/msg_save/tcp_to_store/$2/$3
    the net effect will be a number of queue files in the /msg_save/tcp_to_store directory which are ready for replay. Note the $2 in the sample represents the subdir that the message was already in. As such if you have 'subdirs 20' on your tcp_to_store channel, you will want to precreate the /msg_save/tcp_to_save/000 thru 019 subdirectories with the appropriate ownership and permissions.
    To initiate the replay, you want to simply move the /msg_save/tcp_to_store/### directories to the /instance-root/imta/queue/reprocess and issue the command 'imsimta cache -synch'. The MTA will start pushing out those messages to the store(s).
    If you want to have multiple replays happening you can kick off parallel runs of the reprocess channel by doing 'imsimta run reprocess &' a number of times.
    And, If you want to segregate the storage for each MsgStore machine, you can make new channel in addition to the one suggested 'tcp_to_store' channel. You would then have groups of rewrite rules directing traffic over those channels or you could have one rewrite rule per channel block that you setup. That way you can have distinct entries in your MSG-SAVE-COPY mapping table.
    Finally, since there is a rename operation taking place when you use the MSG-SAVE-COPY mapping table, you will want to make sure that at the first pass that /msg_save is on the same device that your queues live on.
    Short Term Arvchival
    You could setup a process in cron to move those files to a new device on a periodic basis. Better yet, schedule this via the job_controller. For instance, these lines at the top of your job_controller.cnf file:
    [PERIODIC_JOB=archive_mover]
    command=/usr/iplanet/sitescripts/arc_mover.sh
    time=/00:10
    will run the arc_mover.sh script for you every 10 minutes. Your arc_mover.sh could look something like:
    #!/bin/ksh
    # ***Script is untested - should generate some ideas though****
    DUMMY=`test -d /var/tmp/timestamp.dir || mkdir -p /var/tmp/timestamp.dir`
    cd /msg_save
    # First pass
    for dir in `find ./ -type d`
    do
    DUMMY=`test -d /real/storage/area/$dir || mkdir -p /real/storage/area/$dir`
    cd $dir
    for msgfile in `find ./ -type f -newer /var/tmp/timestamp.dir -name "*.00"`
    do
    mv $msgfile /real/storage/area/$dir/
    done
    cd /msg_save
    done
    touch /var/tmp/timestamp.dir
    # Second pass cause we do not know how long we took.
    for dir in `find ./ -type d`
    do
    DUMMY=`test -d /real/storage/area/$dir || mkdir -p /real/storage/area/$dir`
    cd $dir
    for msgfile in `find ./ -type f -newer /var/tmp/timestamp.dir -name "00"`
    do
    mv $msgfile /real/storage/area/$dir/
    done
    cd /msg_save
    done
    exit

  • Function Module for Excise and VAT Calculation

    Dear All,
    I required one Function module for calculation of Excise % and amount of Invoice Verification Document.
    We are use TAXINN tax procedure. I am try to make Purchases Register where we required the Break up of Full tax amount as basic excise duty, Education Cess, S&H Education Cess and VAT Amount.
    Thanks
    Mukesh

    Hi,
    Locks are usually appliend on Tables. So you could find the table names affecting.
    Then you could goto SE11 and n Lock objects search for table name
    Once you identify the lock object. Display. Goto->Lock Modules.
    You will get 2 module names one for enqueue and 1 for dequeue.
    e.g. Lock object EBKK_ACCNT.
    and FMs are DEQUEUE_EBKK_ACCNT and ENQUEUE_EBKK_ACCNT
    Hope this helps.
    Regards
    Megha

  • BPEL-B2B patch for SOA 10.1.3.4

    Hi all,
    Can anyone tell me which patch should be applied to enable BPEL-B2B integration in SOA suite 10.1.3.4(latest)
    And also can anyone tell me how to apply the patch

    Hello,
    You can integrate BPEL (10.1.3.x) with B2B (10.1.2.0.2 - any patch) by using the AQ adapter in BPEL. You can create a BPEL process that uses two AQ adapters (one for dequeuing the message from B2B, one for enqueing the message into B2B). If a message has been received by B2B, use the AQ adapter dequeue operation from BPEL to pull the message out and do whatever you need to do with it. When you need to submit that message back into B2B for out processing you create an AQ adapter enqueue operation in BPEL.
    More detailed instructions on the integration of BPEL and B2B are located here:
    http://www.oracle.com/technology/products/integration/b2b/pdf/B2B_TN_022_Enabling_B2B_BPEL_Interop.pdf
    Thanks,
    Ahmad

Maybe you are looking for