Post & Commit

Hi Experts,
I have a multi-block form, which issues POST and COMMIT on different situations. But the operations fire the same triggers and I'm generating some sequences in Commit operation which are getting generated even in POST operation. I need to avoid this situation, Is there a way to identify the mode of operation or a way around.
something like this......
eg. If :System.Commit_Mode = 'POST'|'COMMIT' Then
end if;
Thanks in advance.

Thanks Xenia,
Even I'm doing it that way, but as I'm generating sequences it is giving me a problem. The sequence no. gets generated. I think, I should insert some dummy no. in Post and over write it by original sequence no. during Commit.
Thanks a lot.
null

Similar Messages

  • POST COMMIT FORM issue in Oracle Forms Personalization

    Hi All,
    I have following requirement in Oracle Forms Personalization :
    1. User updates a records( from the table xxtable) in the Form
    2. Following this, on saving the record, a stored procedure is called to pick those records which are updated/inserted and display. But its displaying still the old values, since commit has not occured.
    3. I have added new forms personalization using POST-DATABASE-COMMIT and POST-FORM-COMMIT. However, none of this trigger is firing.
    Used POST-UPDATE and POST-INSERT, but this trigger are not fetching the committed data but picking the old value.
    Please let me know, how this requirement can be achieved in Oracle forms personalization?
    Many Thanks in Advance.

    the difference in time is that you doing the following additional tasks in forms that you dont do in sqlplus:
    1. you are retrieving data into the fields of the form.
    2. creating the record.
    which is a network round-trip for each record. AFAIK.
    if its an option for you, I would create a global temporary table and then populate the temporary table with the required data. Then build a base table block based on the global temporary table. This way you can use the forms default functionality and its fast because you dont have to populate all the records on the form before you see the first record!
    :>)

  • Before POST & COMMIT

    hi all,
    I have a problem hope it get solved here.
    I want to check whether any user is entering duplicate records before it is commited or posted to the database .
    like suppose if a user has inserted some records in the detailed block like say patr#, Partdescription ...
    001 , XYZ..
    002 ,abc..
    004,POL...
    NOW Suppose if he tries to enter 001 again then a messaged should be displayed that u have already entered the record and should not be duplicated .
    it should be noted that I havent posted the records or commited the form.
    Similarly like suppose i have a form where in i can enter records like suppose 100 records i have entered without saving just going to next record by arrowkey . now here also i need to prevent duplicate entry without posting and commiting
    how can i do
    can any one help me

    See this thread:
    <p>    Re: Duplicate item value in a Multi-Record Block

  • Post Commit code Review Linking in the TFS Warehouse

    Hello
    I am having problems trying to find code reviews associated with a change set where the review and been after checkin. So the reviews are generated by History view --> double click on the changeset --> Actions --> Request Review.
    I understand that when its from a changeset (post-checkin), there is only a link from the code review to the changeset and nothing between the Changeset and the code review.  However when I am looking through the TFS Warehouse I cannot find any table holding
    the link between the code review and the changeset. I expected it to be in the FactWorkItemChangeset but its not there. 
    Is this possible from the TFS Warehouse? 
    Thanks for looking.

    Hi SimonAzurec,  
    Thanks for your post.
    Currently, we can only double click on the changeset to check which code review(s) linked to this changeset in Team Explorer. Please refer to the screenshot in this post:
    http://stackoverflow.com/questions/14103788/tfs-2012-how-can-i-tell-if-a-changeset-was-code-reviewed. 
     After you checked in, please open the linked Code Review Request work item in VS, you will find there’s no changeset shows under
    LINKS table.    
    For this scenario, please submit it to User Voice site at:
    http://visualstudio.uservoice.com/forums/121579-visual-studio. Microsoft engineers will evaluate them seriously.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • POST built-in and form status

    Hello friends at www.oracle.com ,
    while analyzing and testing a Forms program here, I saw that, before POSTing data, the value of :SYSTEM.form_status was CHANGED (that is, database contents were changed at Forms) and, after POSTing, :SYSTEM.form_status became QUERY.
    But, if POST built-in doesn't perform a database commit - so I suppose POSTed data isn't viewable to other users yet -, why does the form changes its status, if we do not have a real commit? Can't this lead the user to think data was saved (when, in fact, it's not, because POSTed data aren't committed)?
    I read about POST built-in at online help, but it's still not much clear for me, so I ask your help to understand it better.
    Hope I was clear - if not, please ask me.
    Best regards,
    Franklin Goncalves Jr.

    Sincere thanks for your answers. I really didn't know that POST built-in would fire triggers involved with database transactions, such as POST-COMMIT.
    Isn't it better for data integrity that Forms and database be synchronized with the state of each other - that is, Forms should state its data is really committed at database? While I don't see a special reason for using POST, I'll still think POST is not so useful and avoid using it.
    In some Forms programs I used a global variable, like :GLOBAL.key_commit_pressed, to determine if KEY-COMMIT was pressed (if user has committed data, that's obvious) while user is working. It doesn't seem to be a bad idea, although I still ask myself if it's really the best one.
    But the most important question I have, is to know if POST built-in validates data with database - that is, integrity constraints, database triggers, and so on. I think it might fire, although I still believe the use of POST built-in can confuse both user and developer anytime.
    Best regards,
    Franklin Goncalves Jr.

  • Spring / Toplink Transaction / Commit Issue

    Hi,
    Im working on a spring / toplink integration on my project.
    The problem Im facing has to do with transaction / commits
    Im using a TransactionProxyFactoryBean to encapsulate a BusinessProcess responsible for creating a new Company Instance and its main Office.
    As the 2 entity have to be created atomicly I have setup a PROPAGATION_REQUIRED on the createCompanyAndMainOffice method of the CompanyBusinessProcess.
    The problem is I want to return a session, identified company object and I cant see how to do that correctly.
    I tried and create a sub internal method like internalTXCreate called by createCompanyAndMainOffice, that would be the one transactional, so I get the commit at the end of its execution, returning the working copy with the newly inserted id, and perform a load with its its ID on the session from createCompanyAndMainOffice.
    But it seems that the TransactionalProxyFactoryBean only intercepts calls on the 'entry point' methods... so back to where I started ...
    I check the reference petclinic implementation and the only new* method does mention it returns a non identified BusinessObject which I find a bit disturbing in my case ...
    Any idea on the problem ?
    Thanks for your help,
    Best Regards
    Olivier Cuzacq
    Software Architect
    Groupe Moniteur

    Something like this in createCompanyAndMainOffice should work:
    return (Owner)getTopLinkTemplate().registerObject(new Owner());
    post-commit, the returned Object will be a reference from Toplink shared cache.

  • 2.1.1/2.1: Posting/committing new rows inside grid not deferred

    Hi,
    With Preferences - Database - ObjectViewer - Post edits on row change or Set Auto Comit On set, creating a new record (using the Create button or Duplicate Row context menu entry) will immediately try to post/commit the new row, instead of allowing the user to edit first. This usually generates errors because of missing or duplicate values.
    Please log a bug against this so posting/committing gets deferred until the user manually changes rows or commits.
    Thanks,
    K.

    Same issue in 1.5.5
    Logged
    Bug 9379438 - with post edit on row change dml issued immidiately after row insertion
    -Raghu

  • The form claims to update the record, but isn't.

    Maybe I just need a sanity check, but this has been driving me bonkers.
    This is in a "when-button-pressed" trigger. Everything seems to be fine in the properties of the form fields, and I even get a "FRM-40400" message saying that two records have been updated in the database (since there are two tables attached to this form), but when I go back to the database table, the records have not been populated. There's actually more to this trigger, but since the records aren't being updated, the rest of the trigger can't do its job.
    I'm posting the beginning of the trigger just so someone can sanity check me. The fact that I'm even getting the FRM-400 message that says it's updated is confusing me. Everything looks fine from the debugger standpoint. Is there something in here that looks like it would prevent me from being able to update the database? I've left in everything, not just what I deem to be the "relevant" portions, just because I'm not sure what might throw it off.
    (anything saying 'soft_messages' can be ignored, it is our own internal way of recording alerts and what kind).
    ---------begin code snippet------------------------------
    DECLARE
         subj VARCHAR2(500);
         v_body VARCHAR2(5000);
         Reqtype varchar2(25) := :INVENTORY.Request_type;
         uft UTL_FILE.FILE_TYPE;
         fpath VARCHAR2(100);
         fname VARCHAR2(100);
         i NUMBER;
         ret NUMBER;
         v_db_name varchar2(50);
         v_support_officer varchar2(35);
         v_owner varchar2(35);
         v_wastemp      NUMBER;
         cust_name VARCHAR2(50);
         cust_phone VARCHAR2(50);
         cust_email VARCHAR2(50);
         cust_test VARCHAR2(50);
         al_button Number;
         msg_txt VARCHAR2(1500);
         V_SMTP_Mailer Boolean default False;
         to_whom VARCHAR2(1000);
         Missing_info exception;
         Proc_failed exception;
         v_node number;
         v_id number;
    BEGIN
         -- Changes the email address so that in production, it goes to the contact, in test it doesn't.
         If v_db_name ='PRODUCTION' then     
              if     :INVENTORY.contact_email is not null then
                   to_Whom := to_Whom||';'||:INVENTORY.contact_email||';';
              else
                   to_Whom:= to_Whom||';';
              end if;
         END IF;
         Message('Working........Please wait');
         SET_APPLICATION_PROPERTY(CURSOR_STYLE,'BUSY');
         select op_sys.current_db_name into v_db_name from dual;
         --Check request type before completing the process
         IF :INVENTORY.VENDOR_NO = 632 THEN
              If :INVENTORY.Request_type ='DISCONNECT' then
                   If :INVENTORY.bill_hierarchy is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Billing Hierarchy before completing the process');
                   Elsif
                   :INVENTORY.auth_code is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Authorization/Host Code before completing the process');
                   End if;
              ELSIF
              :INVENTORY.Request_type ='START' THEN
                   If :INVENTORY.bill_hierarchy is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Billing Hierarchy before completing the process');
                   Elsif
                   :CARD.node is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Node/Card Number before completing the process');
                   Elsif
                   :INVENTORY.auth_code is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Authorization/Host Code before completing the process');
                   End if;     
              End if;
         ELSIF
         :INVENTORY.VENDOR_NO = 1268 THEN
              If :INVENTORY.Request_type ='DISCONNECT' then
    If :INVENTORY.bill_hierarchy is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Billing Hierarchy before completing the process');
                   Elsif
                   :CARD.node is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Card No before completing the process');
                   Elsif
                   :INVENTORY.auth_code is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Authorization Code before completing the process');
                   End if;     
              ELSIF
              :INVENTORY.Request_type ='START' THEN
                   If :INVENTORY.bill_hierarchy is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Billing Hierarchy before completing the process');
              Elsif
                   :CARD.node is null THEN
                   SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                             soft_messages('E',true,'Please enter card number before completing the process');
                   elsif
                   :CARD.folder_id is null AND :inventory.vendor_no = 1268 THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter folder ID before completing the process');
                   elsif
                   :INVENTORY.PAC is null AND :inventory.vendor_no = 1268 THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter participant access code before completing the process');
                   Elsif
                   :INVENTORY.auth_code is null THEN
                        SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
                        soft_messages('E',true,'Please enter Authorization Code before completing the process');
                   End if;     
              End if;
         END IF;
         If :INVENTORY.tsr_no is null THEN
              soft_messages('E',true,'Please enter the TSR number.');
         elsif
         :INVENTORY.csa is null then
              soft_messages('E',true,'Please enter the CSA number.');
         elsif
         :INVENTORY.tsr_no is null and :INVENTORY.csa is null then
              soft_messages('E',true,'Please enter the TSR number and CSA number.');
         end if;
         if :inventory.vendor_no = 632 then
              v_node := :card.cnt_card;
              v_id := :card.cnt_id;          
              if v_node > 1 then
                   soft_messages('E',true, 'Only one node/account # is required for request, Please correct to continue');
              end if;
         end if;
         if :inventory.vendor_no = 1268 then
              if :card.folder_id is not null and :card.node is null then
                   soft_messages('E',true,'Please enter card number to continue');
              elsif
                   :card.node is not null and :card.folder_id is null then
                   soft_messages('E',true,'Please enter folder ID to continue');
              end if;
         end if;
         if :inventory.vendor_no = 1268 then
         v_node := :card.cnt_card;
         v_id := :card.cnt_id;     
         if v_node <> :inventory.num_requested and v_id <> :inventory.num_requested then
              soft_messages('E',true, 'The node and folder ID entered must equal the number requested , Please correct to continue');
              end if;
         end if;
         If (:inventory.tsr_no is not null AND :inventory.csa is not null
         AND :inventory.bill_hierarchy is not null AND :card.node is not null
         AND :inventory.auth_code is not null) then
              msg_txt := 'Are you sure you want to complete this request: '||:inventory.REQUEST_NO||' ?' ;          
              al_button :=     DISPLAY_ALERT('CG$ASK_COMMIT',msg_txt);
              --If status change is requested          
              If al_button = 88 then     
                   SET_APPLICATION_PROPERTY(CURSOR_STYLE,'BUSY');     
                   If Reqtype = 'START' and :INVENTORY.status = 'PENDING START' then
                        :INVENTORY.status :='ACTIVE';     
                        :INVENTORY.COMPL_DATE := SYSDATE;
                   :INVENTORY.COMPLETED_BY := USER;          
                   Elsif Reqtype = 'START' and :INVENTORY.status = 'ACTIVE' then
                        :INVENTORY.status :='ACTIVE';
                        :INVENTORY.CREATE_DATE := SYSDATE;
                        :INVENTORY.CREATE_USER := USER;
                        :INVENTORY.COMPL_DATE := SYSDATE;
                        :INVENTORY.COMPLETED_BY := USER;          
                   Elsif Reqtype = 'DISCONNECT' and :inventory.status = 'PENDING DISCONNECT' then
                        :INVENTORY.status :='DISCONNECTED';
         :INVENTORY.COMPL_DATE := SYSDATE;
         :INVENTORY.COMPLETED_BY := USER;
                   End if;     
              end if;     
    /* something is not letting the commit for the card block happen*/
              :SYSTEM.MESSAGE_LEVEL := 5;
              COMMIT_FORM;
              :SYSTEM.MESSAGE_LEVEL := 0;
              SET_APPLICATION_PROPERTY(CURSOR_STYLE,'DEFAULT');     
              if al_button = 88 then
                   soft_messages('I',false,'Request has been successfully processed.');
         else
                   soft_messages('I',false,'This Request has not been saved.');
              end if;
    ------------end code snippet-----------------
    Everything after this point hinges on the data having been committed.
    This is unfortunately code I've inherited, so I'm not sure why the former owner decided that just because you pressed "yes" the request should be declared successfully processed. I've cleaned up what's listed above, but for debugging purposes I've planted little messages throughout this code to let me know what the state of some of the variables are, and everything looks to be correct.
    Why would I get a FRM-40400 if it's not actually successfully updating the database?
    Cyd

    "The fact that it's doing a commit no matter what..."
    It won't do a commit if the form_status is QUERY. Did you check the form_status before coming to the actual commit statement? If it's QUERY, it won't commit. You need to do check this!
    If the form_status is not QUERY, then it will do a commit unless the form is doing something in a pre-commit trigger, or deleting the records in a post commit trigger. The fact you were getting a "are no changes to be saved" message, leads me to believe you may have something going on in a trigger that fires when it encounters your commit statement. You may have to use the debugger to execute your code one line at a time to find out what's going one here. Have you tried doing that?
    Other possibilities are:
    a. The database or schema you are looking at is not the database or schema Forms is using to save the records.
    b. The records being commited are not the records you were expecting.
    "FRM-40400 blinking up on the screen"
    not sure why it would be blinking... maybe due to the version of Forms Builder you are using.

  • How can i get the unitOfWork or the persisting object in to my listener???.

    hi,
    i have a listener class which extends SessionEventAdapter ....as shown below
    public class MyLister extends SessionEventAdapter{
    public void postCommitUnitOfWork(SessionEvent event) {
    System.out.println("POST COMMIT OF WORK");
    // How can i get the unitOfWork or the persisting object in to my listener???
    Another class makes use of this listener by adding the listener into a getEventManager() of a session ....
    public final class AetbProcessStatusClient {
    public static final void main(String[] args)
    {  Project project =   
    XMLProjectReader.read("META- INF/AetbProcessStatus.xml",
    Thread.currentThread().getContextClassLoader());
    DatabaseSession session = project.createDatabaseSession();
    MyLister myListener = new MyLister();
    session.getEventManager().addListener(myListener);
    session.login();
    UnitOfWork uow = session.acquireUnitOfWork();
    uow = session.acquireUnitOfWork();
    Vector vec =
    (Vector)uow.executeQuery("SQFunctionIdProcessStatus", AetbProcessStatus.class);
    AetbProcessStatus processStatus = new AetbProcessStatus();
    processStatus = (AetbProcessStatus)vec.get(0);
    processStatus.setRunStat('E');
    processStatus.setProgramSeqNo(10);
    uow.commit();
    now my question --> How can i get the unitOfWork or the persisting object in to my listener???....
    ie the object "processStatus" into my listener

    The SessionEvent's session (getSession()), should be the UnitOfWork. You can access the UnitOfWork or UnitOfWorkImpl methods to access the objects in the unit of work. getUnitOfWorkChangeSet() will return the changes made in the UnitOfWork.
    -- James : http://www.eclipselink.org

  • Refresh block

    Hi all,
    I'm using Oracle Forms Builder 10GR2. I have a database block and a procedure which just updates the values of some fields in that DB block. The problem is that the new values don't appear immediately even i have specified commit in the procedure. I have to requery the database block to see the new values. Any ideas how this can be achieved? Also, i tried to specify an INTO clause for those fields but i think this is not working because of their database item property...
    In other block, which is not database, i have something like this :
    select <value> INTO :<field> FROM <table_name>and the value of that field is automatically refreshed. Is this going to work for db items? If yes, why i'm not able to compile my procedure when the syntax is the same as the non-db items? The error is : Bad bind variable....
    Thanks in advance,
    Bahchevanov.

    Hi, this is my procedure, it's simple:
    PROCEDURE set_control_balance (p_statement_header_id IN INTEGER, p_control_total_dr in integer, p_control_total_cr in integer
                                                                                  ,p_control_dr_line_count in integer,p_control_cr_line_count in integer
                                                                                  ,p_control_end_balance in integer )
       IS
      begin
            update ce.ce_statement_headers
                 set control_total_dr                = p_control_total_dr
                       ,control_total_cr            = p_control_total_cr
                       ,control_dr_line_count = p_control_dr_line_count
                       ,control_cr_line_count = p_control_cr_line_count
                       ,control_end_balance          = p_control_end_balance
                 where
                           statement_header_id      = p_statement_header_id
       exception
            when others then
            raise;
       END;i call the procedure in the WHEN-BUTTON-PRESSED trigger of a button like this:
    set_control_balance(:ce_statement_headers_all.statement_header_id
                                                                      ,:ce_statement_headers_all.CTRL_TOTAL_DR
                                                                      ,:ce_statement_headers_all.CTRL_TOTAL_CR
                                                                      ,:ce_statement_headers_all.CTRL_DR_LINE_COUNT
                                                                      ,:ce_statement_headers_all.CTRL_CR_LINE_COUNT
                                                                      ,:ce_statement_headers_all.CTRL_END_BALANCE);
    :SYSTEM.message_level := 25;
          COMMIT;
    CLEAR_RECORD;
    GO_BLOCK ('CE_STATEMENT_LINES');
                EXECUTE_QUERY;
          LAST_RECORD;
    HIDE_WINDOW ('XXBG_CE_STATEMENT_LINES_NEW');
    But before, pls create POST-COMMIT Trigger Form Level Sorry cannot found such trigger on form level... There is ON-COMMIT,POST-DATABASE-COMMIT,POST-FORM-COMMIT... which of them i have to use?
    Thanks in advance,
    Bahchevanov.

  • How to create and write a BLOB using ImmediateAccess

    Hi there,
    I'd like to write a BLOB using ScrollableRowSetAccess an ImmediateAccess and thereby want to avoid the use of any SQL-statements.
    The problem is that I can't write to an empty BLOB, so that I have to create a dummy-Blob using BLOBDomain and overwrite it afterwards (see code below).
    It should be possible to avoid the creation of a dummy-BLOB but I don't know how. Could you please send me a corrected version of my code?
    Thanks in advance
    write File with filename to the column with index col /(or the column with name colname, if specified) of the table that is specified by ResultSetInfo rsi
    public static void writeFileToBlob(int col, String colname, ResultSetInfo rsi, String filename, SessionInfo _sessionInfo)
    FileInputStream fin;
    Object obj;
    ScrollableRowsetAccess srsa= _rsi.getRowsetAccess();
    ImmediateAccess ia;
    byte []mybytes;
    BlobDomain
    BLOB blob;
    OutputStream out;
    byte []myBuffer;
    int bytesRead=0;
    try{
    //open file
    fin = new FileInputStream(_filename);
    //lock Row
    srsa.lockRow();
    if (_colname==null)
    ia = (ImmediateAccess)srsa.getColumnItem(_col);
    else
    ia = (ImmediateAccess)srsa.getColumnItem(_colname);
    obj= ia.getValueAsObject();
    //insert a dummy-BLOB of size 1-byte
    mybytes= new byte[1];
    blobDom= new BlobDomain();
    blobDom.setBytes(mybytes); //ein Byte in den BLOB schreiben
    ia.setValue(blobDom); //Wert in Zeile einf|gen
    //commit Data
    _sessionInfo.getApplicationModule().getTransaction().commit();
    //access previously created dummy-Blob
    srsa.lockRow();
    if (_colname==null)
    ia = (ImmediateAccess)srsa.getColumnItem(_col);
    else
    ia = (ImmediateAccess)srsa.getColumnItem(_colname);
    obj= ia.getValueAsObject();
    //assign the BLOB
    blob= (BLOB) obj;
    //open BLOB for writing
    out= blob.getBinaryOutputStream();
    myBuffer= new byte[10*1024];
    //read file and write the BLOB
    while ((bytesRead= fin.read(myBuffer)) !=-1)
    out.write(myBuffer, 0, bytesRead);
    out.flush();
    out.close();
    fin.close();
    ia.setValue(blob);
    //commmit data
    _sessionInfo.getApplicationModule().getTransaction().commit();
    }catch(Exception e){System.out.println("writeblob:"+e);}
    null

    Here are the issues with your usage of BlobDomain:
    1. Streaming support is not implemented in 3.2 version of BlobDomain. It'll be implemented in our next release.
    2. Your casting of object returned from getColumnItem is illegal as the objects will be of type BlobDomain and not BLOB.
    3. When you create an empty BlobDomain you're in-effect meaning to call the empty_blob() method on the sql-row to create a empty blob locator.
    4. You need to use getBytes(), setBytes() to read data out/set data into a blob/clob domain object in JDev 3.2
    5. Casting/using oracle.sql.BLOB may lead to non-portable code (you're binding to the jdbc objects which may not be available in all tiers of deployment).
    Here's the pseudocode you could use for new blobs.
    1. create a new instance of BlobDomain()
    2. setBytes() with actual data read from a stream. (Yes this may not work with real large blobs but we've tested blobs ~2MB in size and for larger needs, we're implementing the streaming support scheduled for our next release).
    3. set the domain object into an attribute.
    4. post/commit your data.
    null

  • All operations that will force quiescence in a workflow

    I have the following list of operations that will force quiescence ...
    1) Timed Event actions
    2) Set Due Date actions
    3) Assign Task... actions
    4) Send XML to Client actions
    5) Event nodes
    6) Done nodes
    Is there anything that I am missing?
    Also if someone can shed some light on the significance of the "Post
    External XML Event" viz-a-viz quiescence and transaction boundries. I am
    specifically interested in finding out if what happend when the transaction
    mode for the "Post External XML Event" is set to "send immediately"... Will
    this cause a transaction to end for the sake?
    Regards,
    Raoon Kundi

    Raoon Kundi,
    You can specify whether you want the message to be sent immediately, or when the
    current transaction containing the Post XML Event action commits. Sending the
    message immediately sends the message whether or not the transaction completes.
    Sending the message on commit ensures that the message is sent only if the transaction
    completes successfully and a commit is issued. If the transaction is unsuccessful
    and is rolled back, the message is not sent. The default is when the transaction
    commits. For more information on workflow transaction boundaries, see Understanding
    the BPM Transaction Model in Programming BPM Client Applications.
    Advantage of Post Immediate(immediate)
    &#61623; Performance improvements in one-way asynchronous requests where an event
    may be fired before transaction commits.
    Caveats with Post Immediate
    &#61623; Duplicate Messages: Messages may be redelivered, if request side workflow
    transaction was rolled-back and retried.
    &#61623; Wrong Address in Addressed Response Message: A request is originated
    from uncommitted workflow running in a live transactional context, and the transaction
    is later rolled-back. In this case, workflow instance will be removed, as it was
    never committed, and a response for such request will not find the addressed instance
    to be notified.
    &#61623; No-Instance-Found-Race-Condition: A request is originated from uncommitted
    workflow running in a live transactional context, and response comes back before
    transaction is committed. In this case, response can’t find uncommitted workflow
    instance, and retries for a configurable of times after sleeping for configured
    retry interval between all retries. This will reduce the window for race condition
    significantly. Improper tuning may still show the problem more often. Tuning can
    guarantee robustness only when retry times*retry interval is more than transaction
    timeout.
    Advantages of Post Commit(when transaction commits)
    &#61623; No-Instance-Found-Race-Condition is a remote possibility. Cause for all
    occurrences of this race condition in “Post Commit” are outside scope of WLI (ORACLE,
    for example, sometimes has shown delays between transaction commit, and row being
    visible to other transactions).
    &#61623; No Duplicate Messages
    &#61623; Wrong Address not possible.
    Caveats with Post Commit
    &#61623; May add a new resource to already running transaction (slowing down 2phase
    commit processing).
    &#61623; Delay in posting the XML event message (only sent when transaction commits).
    Which Pattern warrants which delivery mode?
    &#61623; One-Way Asynchronous (fire and forget)
    Ideal for Post-Immediate, but must deal with redelivery issues.
    &#61623; Two-way asynchronous
    Ideal for Post-Commit, for the reasons mentioned above (Post-Immediate may see
    “No-instance-found race condition”, “Message redelivery” or “wrong address in
    response” problems).
    &#61623; Two-way synchronous
    Ideal for Post-Commit, for the reasons mentioned above (Post-Immediate may see
    “No-instance-found race condition”, “Message redelivery” or “wrong address in
    response” problems).
    Hope
    "Raoon Kundi" <[email protected]> wrote:
    I have the following list of operations that will force quiescence ...
    1) Timed Event actions
    2) Set Due Date actions
    3) Assign Task... actions
    4) Send XML to Client actions
    5) Event nodes
    6) Done nodes
    Is there anything that I am missing?
    Also if someone can shed some light on the significance of the "Post
    External XML Event" viz-a-viz quiescence and transaction boundries.
    I am
    specifically interested in finding out if what happend when the transaction
    mode for the "Post External XML Event" is set to "send immediately"...
    Will
    this cause a transaction to end for the sake?
    Regards,
    Raoon Kundi

  • How to use trigger/plugin in DSEE 6.3.1

    Hi All,
    I have DSEE 6.3.1 installed and would like to setup an trigger whenever an application user changes some attributes in LDAP, I googled and came across we can use triggers but not sure how to use those. Is triggers are same as plugins or one of the builtin plugin provide trigger functionality?
    The requirement is- Whenever an application owner changes any attribute in LDAP I want to set an trigger and get that changed value in a plain text file for audit purpose. The trigger should work post commit and not pre commit just want to confirm the changes as been written in LDAP.
    Found following plugins available in DSEE 6.3.1-
    7-bit check
    ACL Plugin
    ACL preoperation
    Binary Syntax
    Boolean Syntax
    CLEAR
    CRYPT
    Case Exact String Syntax
    Case Ignore String Syntax
    CaseExactMatch Plugin
    Class of Service
    Country String Syntax
    DES
    DSMLv2-SOAP-HTTP
    Distinguished Name Syntax
    Generalized Time Syntax
    Integer Syntax
    Internationalization Plugin
    MemberOf Plugin
    Monitoring Plugin
    Multimaster Replication Plugin
    NS-MTA-MD5
    ObjectDeletionMatch
    Octet String Syntax
    Pass Through Authentication
    Postal Address Syntax
    RMCE
    Replication Repair
    Retro Changelog Plugin
    Roles Plugin
    SHA
    SSHA
    State Change Plugin
    Strong Password Check
    Telephone Syntax
    URI Syntax
    chaining database
    gle
    ldbm database
    pswsync
    referential integrity postoperation
    subtree entry counter for departments in domains
    subtree entry counter for domains within a domain
    subtree entry counter for mail lists
    subtree entry counter for nested departments
    subtree entry counter for total domains
    subtree entry counter for users
    uid uniqueness
    value counter for departments
    value counter for mail lists
    Request your help in this issue.

    I am trying to use the regular ldapsearch command from commandline and not any C/Java code, like-
    ldapsearch -D "cn=directory manager" -p 1389 -h localhost -w abcd1234 -r -C PS:any:1:0 -b dc=abc,dc=com ou=emp
    despite using -r and -C option it just comes out displaying below entries
    ou=emp,dc=abc,dc=com
    ou=emp
    objectClass=top
    objectClass=organizationalUnit
    also tried with below command -
    ldapsearch -D "cn=directory manager" -p 1389 -h localhost -w abcd1234 -r -C PS:any:1:0 -b dc=techm,dc=com objectclass=person
    it displays long list and just comes out, not sure why its not doing the persistent search after using -r and -C options.
    request you to give some good idea on this.

  • JDBC Receiver Adapter: Guarnteed delivery

    Hi All,
    I have a JDBC receiver scenario.  I was investigating the Guarnteed ( Exactly Once ) delivery option of the JDBC receiver adapter.  The Following two scenarios needs to be validated
    The Technical scenario is SAP R/3 ---  XI -
    Database
    Scenario1 :  The message has been triggered by SAP r/3 to XI.  The Target Database then crashed.   The message errors out in the Adapter engine and was not sent to the database. Would the messsage be resent again, till successful delivery. Do we need to set the Advance Mode, parameter "Number of Re-tries of database Transaction on SQL error".  Or should this happen automatically from the Adapter without any setting in the adapter configuration.
    Scenario2:  There is a setting as Exactly Once Handling .
    i have gone through the documentation on SAP help
    [http://help.sap.com/erp2005_ehp_03/helpdata/EN/22/b4d13b633f7748b4d34f3191529946/frameset.htm]
    But this is not very illustrative
    it has 2 modes  
      PERSISTENCE ( values local and DB )
      CONFLICT RESOLUTION ( Error or Redo )
    Is this only after a post-commit system crash? Can anybody provide some more documentation, or blogs for the same.
    In all we would expect that, a message Triggered from R/3 should always be delivered to the database.
    please let me know know your opinions on the same.
    Thanks in advance,
    Best Regards
    Abhishek

    Would the messsage be resent again, till successful delivery
    The default behaviour of adapter engine is to try sending data to receiver 3 times at an interval of 5 minutes after which the message goes into system error. You may change this behavior through visual admin. After this, you may also manually restart the message.
    Do we need to set the Advance Mode, parameter "Number of Re-tries of database Transaction on SQL error"
    This is not mandatory. As I mentioned above, it is handled to a certain exten automatically.
    Is this only after a post-commit system crash?
    The persistance factors when defined could help in error handling cases. This could also be used when a system crash occurs at the time of message processing. Then the message processing has to be done for the second time and one of the two conflict resolution methods are used.
    Regards,
    Prateek

  • Refersh Data Source

    Hello,
    I am having a problem with my datasource refreshing after I insert a row into a table using the executeSQL tag. I am using BC4J/JSP. I tried to use the "refreshdatasource" tag, but this messes up the scrolling functionality because it resets the cursor on every reload. Is there a way I can make the datasource display my changes w/o using refreshdatasource??
    Thanks,
    Dusty

    Use the createRow() and insertRow() methods of the RowSet(). This will make the new row visisble in the row cache. You need to make sure you post\commit your changes to the database. See if the following HOWTO helps:
    re:WEB Generated Forms Navigation

Maybe you are looking for