Oracle: Asynchronous trigger processing in Oracle

could anyone explain how Oracle executes triggers,
namely if a trigger is fired in asynchronous mode
or not? Maybe it is tuneable?
For example, there is a trigger defined as
CREATE OR REPLACE TRIGGER Convert_Transaction
AFTER INSERT OR UPDATE ON TB_TRANSACTIONS
FOR EACH ROW
BEGIN
--code which may be time-consumimg
END;
This is the only trigger defined for the table.
Will Oracle allow inserts in the table
TB_TRANSACTIONS if the processing of trigger
from the previous INSERT is not finished?
If so, will the trigger for this new INSERT
be fired?
The behaviour i need is to allow inserts while
processing the previous "after insert" trigger,
but to block trigger execution if another trigger
is still executing, i.e. to make a queue of triggers
waiting their time to fire.
Can Oracle provide such behaviour with triggers?
Maybe i should look for another solution?
Thanks for the help!

Santosh_Oracle wrote:
could anyone explain how Oracle executes triggers,
namely if a trigger is fired in asynchronous mode
or not? Maybe it is tuneable?
For example, there is a trigger defined as
CREATE OR REPLACE TRIGGER Convert_Transaction
AFTER INSERT OR UPDATE ON TB_TRANSACTIONS
FOR EACH ROW
BEGIN
--code which may be time-consumimg
END;
This is the only trigger defined for the table.
Will Oracle allow inserts in the table
TB_TRANSACTIONS if the processing of trigger
from the previous INSERT is not finished?You wouldn't be able to insert into the same table in the same session so it's irrelevant. You'd have to wait for the first insert to finish first. And other sessions won't see any of those inserts until it is commited in that session first.
The behaviour i need is to allow inserts while
processing the previous "after insert" trigger,The first insert or it's firing trigger won't prevent other sessions from inserting too.
but to block trigger execution if another trigger
is still executing, i.e. to make a queue of triggers
waiting their time to fire.They are seperate transactions and you'd have to try and implement some sort of autonomous transaction to do that, but then you could end up in some sort of deadlock situation. Is there a particular reason why you need to do this?
Can Oracle provide such behaviour with triggers?
Maybe i should look for another solution?That sounds like the best plan. ;)

Similar Messages

  • OSB -- Invoking an asynchronous BPEL process in Oracle Service Bus

    Hi All,
    Can any one let me know how to invoke the Asynchronous BPEL process in OSB.
    Thanks in Advance,
    Feroz Tasha.

    Hey,
    What i was trying to say was that when you export your OSB project to file system, you can edit the business service in a file editor(e.g notepad, editplus etc).
    In that, instead of suppose 127.0.0.1 u can put a token say @@HOST_NAME@@ and for a port say 7001 as @@PORT_NUMBER@@.
    Then an ant script can replace the values of above 2 tokens with apt values, create a jar out of it and deploy it on the server.
    There are numerous ANT scripts and examples available online.
    Hope this helps.

  • How to call a BPEL process from Oracle Apps Java Concurrent program

    Hello,
    I need to trigger a BPEL process from Oracle Apps. Can anybody tell me how to do that? I have two triggering option--
    1. On button click from a Form 6i screen
    2. Using Java Concurrent program.
    Thanks in advance.
    Debkanta

    I am not sure how concurrent program works, but may be one of the way might work out, let me know if Java Concurrent Program works a bit different way
    - [if async] Through concurrent program, you can insert message token to db or aq, and BPEL can be instantiated from there
    or
    - If it supports pure java call, then you can look at multiple documents (e.g. http://www.oracle.com/technology/products/ias/bpel/pdf/orabpel-Tutorial7-InvokingBPELProcesses.pdf) to invoke your process
    - You can also use oracle db utility to invoke soap operation and get the result back
    HTH,
    Chintan

  • Oracle Forms Trigger firing hierarchy flowchart

    Greetings,
    In 1994, there was a "Oracle Forms Processing Manual" (Oracle part# A11990-2).
    This book contained the visual representation of Oracle Forms processes showing where each trigger fires.
    Where is this "flow-chart" in documentation available today?
    I need to know the explicit chronological sequence of each trigger firing....
    Pre-Form trigger fires first...then the When-New-Form-Instance....etc
    Thank you for your support!

    Sorry.
    Let me clarify.
    Need to know where it is defined about which trigger fires before or after which other trigger….
    The whole sequence…every trigger…
    Example:
    Document must show stuff like ON-COMMIT fires before(or after) POST-DELETE.
    So I am certain that when a delete is initiated by the user, the ON-COMMIT fires before(or after), and so data in the database record is still available(or not available) to the code in the ON_COMMIT trigger.
    This helps me know for certain what really happens, step-by-step, when Forms deletes a record.
    So the document must show a visual representation of the DELETE EVENT.
    This visual representation must explicitly show the ON-COMMIT trigger and the PRE-DELETE trigger and the ON-DELETE trigger and the POST-DELETE trigger…
    Thank you!

  • Configuraing the Durable process in Oracle BPEL

    Hi,
    We are working on Oracle BPEL process manager version 10.1.2, in development mode with Oracle lite for the dehydration data source.
    Requirement:
    We need to create the long-living and durable process which invokes the Web Services deployed in the JBOSS and Weblogic application servers. The operation in these web services are Request-Response messages and takes about 5 minutes to give the response back. During the execution of process instance if Oracle BPEL server gets re-started We need the BPEL Server to resume the instance execution from the place where it had stopped when it went down.
    Implementation:
    We have created the Asynchronous business process to orchestrate the invocation of web services said above. And added the WAIT activity for 2 seconds to ensure the dehydrations points. Since the Web Services are invoked synchronously we had used the WAIT activity to set the dehydration points. When the server is alive during the complete execution dehydration happens perfectly and receive the final result after 10+ mins.
    Issue:
    When the BPEL server goes down during the process execution then it is not resuming the process instance from the place where it stopped.
    Please suggest me what kind of configurations that i need to make to the process or domain so that when Oracle BPEL server re-started, it could resume the execution of active process instance.
    Thanks in Advance.
    Sujatha

    Perhaps this presentation:
    http://www.oracle.com/technology/products/ias/bpel/pdf/bpel-admin-webinar.pdf
    or
    http://download-uk.oracle.com/docs/cd/B31017_01/core.1013/b28941/soa.htm#BGBJIFHH

  • Example of Asynchronous Web Service Using Oracle APIs

    Greetings,
    Is there any tutorial, section or example of Oracle, that explains clearly, how to create an Asynchronous Web Service using Oracle APIs.
    Thakns in advance for your help.-

    Does this help:
    http://niallcblogs.blogspot.com/2009/03/calling-async-bpel-process-from-jdev.html

  • How To Configure Oracle BPM 11g Process Portal on Oracle WebCenter Spaces

    After setting the file process-portal-install.properties and have set the path environment variable to the ANT.
    When i execute a command ant -f install.xml i can see the next error
    [exec] Updating deployment targets for the datasources...
    [exec] This Exception occurred at Tue Dec 18 14:32:49 EST 2012.
    [exec] javax.management.InvalidAttributeValueException: Array has at least one null element
    [exec] Problem invoking WLST - Traceback (innermost last):
    [exec] File "/opt/oracle/Middleware/Oracle_SOA1/bpm/process_spaces/wc-post-install.py", line 253, in ?
    [exec] File "/opt/oracle/Middleware/Oracle_SOA1/bpm/process_spaces/wc-post-install.py", line 112, in updateTargets
    [exec] File "", line 581, in set
    [exec] File "", line 1847, in raiseWLSTException
    [exec] WLSTException: Error occured while performing set : Error setting attribute Targets : Array has at least one null element
    [exec] Use dumpStack() to view the full stacktrace
    [exec]
    BUILD FAILED
    /opt/oracle/Middleware/Oracle_SOA1/bpm/process_spaces/install.xml:207: exec returned: 1
    Someone know the cause of this error??
    Thanks in advance

    Hi;
    I belive you can follow this thread if you insist to make 11g installation on ubuntu. But as installation documents refer Ubuntu is not a certified platform yet for 11gr2,you can find details on below docs. (I suggest use OEL platform which is free and certified wiht Oracle 11gR2 db)
    http://download.oracle.com/docs/cd/E11882_01/install.112/e16763/pre_install.htm#CIHFICFD
    Certified platform for 11gR2
    On Linux x86:
    Asianux Server 3 SP2
    Oracle Enterprise Linux 4 Update 7
    Oracle Enterprise Linux 5 Update 2
    Red Hat Enterprise Linux 4 Update 7
    Red Hat Enterprise Linux 5 Update 2
    SUSE Linux Enterprise Server 10 SP2
    SUSE Linux Enterprise Server 11
    On Linux x86-64
    Asianux Server 3 SP2
    Oracle Enterprise Linux 4 Update 7
    Oracle Enterprise Linux 5 Update 2
    Red Hat Enterprise Linux 4 Update 7
    Red Hat Enterprise Linux 5 Update 2
    SUSE Linux Enterprise Server 10 SP2
    SUSE Linux Enterprise Server 11
    Regard
    Helios

  • Issue in invoking the BPEL process from Oracle using a SOAP Request

    Hi,
    We are facing an issue while invoking a deployed Bpel Process from Oracle Applications 11.5.10..
    Using a concurrent program( Unix / Host program ) we are passing the input variables required for the Bpel process in the ProcessRequest tags and forming this as a SOAP message payload.
    Then trying to invoke the deployed bpel process using the end point location using HTTP POST..but nothing is happening..
    The bpel process is not getting invoked when i look at the Console and also checked for the Manual Recovery queue..it's not stuck there as well..
    Have set the Transfer Time Out to 25 minutes using UTL_HTTP.SET_TRANSFER_TIMEOUT(1500);
    Could someone please help us as soon as possible with this ..as this is critical and we are stuck at the moment.
    The logic is mentioned below :
    UTL_HTTP.SET_TRANSFER_TIMEOUT(1500);
    UTL_HTTP.SET_DETAILED_EXCP_SUPPORT(ENABLE=>TRUE);     
    soap_request:='<?xml version="1.0" encoding="UTF-8"?>'||
    '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'||
    '<soap:Header/>'||
    '<soap:Body xmlns:ns1="http://xmlns.oracle.com/bpelprocessname">'||
    '<ns1:bpelprocessnameProcessRequest>'||
    '<ns1:CSONum>'||order_number||'</ns1:CSONum>'||
    '<ns1:CreationDate>'||c_chr_cso_last_run_dte||'</ns1:CreationDate>'||
    '</ns1:bpelprocessnameProcessRequest>'||
    '</soap:Body>'||
    '</soap:Envelope>';          
    http_req:= utl_http.begin_request
    ('http://bpel_server ip:port/orabpel/domain_name/bpelprocessname/1.0' , 'POST', 'HTTP/1.1'
    utl_http.set_header(http_req, 'Content-Type', 'text/xml') ;
    utl_http.set_header(http_req, 'Content-Length', length(soap_request)) ;
    utl_http.set_header(http_req, 'SOAPAction', 'process');
    utl_http.write_text(http_req, soap_request) ;
    http_resp:= utl_http.get_response(http_req) ;
    utl_http.read_text(http_resp, soap_respond) ;
    utl_http.end_response(http_resp) ;
    dbms_output.put_line(soap_respond);
    Thanks

    check if your soap envelope is correct,check my below procedure which is working fine for me
    procedure xxxxx_BPEL_SCHEDULER
    IS
    soap_request varchar2(30000);
    soap_respond varchar2(30000);
    http_req utl_http.req;
    http_resp utl_http.resp;
    launch_url varchar2(240) ;
    begin
    soap_request:='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:add="http://schemas.xmlsoap.org/ws/2003/03/addressing" xmlns:star="http://xmlns.oracle.com/xxxxx_BPEL_SCHEDULER">
    <soapenv:Header>
    <add:MessageID>?</add:MessageID>
    <add:ReplyTo>
    <add:Address>?</add:Address>
    <!--Optional:-->
    <add:ReferenceProperties>
    <!--You may enter ANY elements at this point-->
    </add:ReferenceProperties>
    <!--Optional:-->
    <add:PortType>?</add:PortType>
    <!--Optional:-->
    <add:ServiceName PortName="?">?</add:ServiceName>
    <!--You may enter ANY elements at this point-->
    </add:ReplyTo>
    </soapenv:Header>
    <soapenv:Body>
    <star:STARS_BPEL_SCHEDULERProcessRequest>
    <star:SCHEDULER_PARAM1>?</star:SCHEDULER_PARAM1>
    <star:SCHEDULER_PARAM2>?</star:SCHEDULER_PARAM2>
    <star:SCHEDULER_PARAM3>?</star:SCHEDULER_PARAM3>
    <star:SCHEDULER_PARAM4>?</star:SCHEDULER_PARAM4>
    <star:SCHEDULER_PARAM5>?</star:SCHEDULER_PARAM5>
    </star:STARS_BPEL_SCHEDULERProcessRequest>
    </soapenv:Body>
    </soapenv:Envelope>';
    http_req:= utl_http.begin_request('http://xxxxxx.com:16000/orabpel/default/xxxx_BPEL_SCHEDULER/1.0 '
    ,'POST',
    'HTTP/1.1'
    utl_http.set_header(http_req, 'Content-Type', 'text/xml') ;
    utl_http.set_header(http_req, 'Content-Length', length(soap_request)) ;
    utl_http.set_header(http_req, 'SOAPAction', 'initiate');
    utl_http.write_text(http_req, soap_request) ;
    http_resp:= utl_http.get_response(http_req) ;
    utl_http.read_text(http_resp, soap_respond) ;
    utl_http.end_response(http_resp) ;
    dbms_output.put_line(soap_respond);
    END;

  • MULTIPLE ARCHIVER PROCESSES FAQ ( ORACLE 8I NEW FEATURE )

    제품 : ORACLE SERVER
    작성날짜 : 2002-04-19
    MULTIPLE ARCHIVER PROCESSES FAQ ( ORACLE 8I NEW FEATURE )
    =========================================================
    PURPOSE
    1. LOG_ARCHIVE_MAX_PROCESSES가 하는 역할
    2. LOG_ARCHIVE_MAX_PROCESSES 값은 동적으로 변경 가능한지 여부
    3. Archiver process의 갯수가 동적으로 바뀌는 메카니즘
    4. 어떤 archiver process가 online log를 archive시켰는지 판단 방법
    Explanation
    1. LOG_ARCHIVE_MAX_PROCESSES가 하는 역할
    Oracle 8i에는 다중 archive destination을 지원하며, 단일 archiver의
    부하를 줄여주기 위해 multiple archiver process를 사용할 수 있다.
    LOG_ARCHIVE_MAX_PROCESSES 파라미터로 구동시킬 최대 ARCH 프로세스의
    갯수를 지정하면 된다.
    만약 LOG_ARCHIVE_START 값이 TRUE로 지정되어 있다면 인스턴스 구동시
    init 파일에 지정된 LOG_ARCHIVE_MAX_PROCESSES에 지정된 값을 읽어
    들인다. 만약 LOG_ARCHIVE_START 값이 true인데 LOG_ARCHIVE_MAX_PROCESSES
    값이 별도로 지정되어 있지 않을 경우에는 arc0 프로세스만을 구동시킨다.
    LOG_ARCHIVE_MAX_PROCESSES 값이 별도로 지정되었을 경우 (1 - 10 범위),
    arc0, arc1 과 같은 추가 프로세스를 구동시킨다.
    하지만, 이 파라미터 값을 기본값 1이 아닌 다른 값으로 명시적으로 지정할
    필요는 없다. 왜냐하면, 시스템에서 몇개의 ARCn 프로세스가
    필요한지를 판단하여, 추가 ARCn 프로세스를 생성하기 때문이다.
    2. LOG_ARCHIVE_MAX_PROCESSES 값은 동적으로 변경 가능한지 여부
    alter system 명령에서 set LOG_ARCHIVE_MAX_PROCESSES=n 으로
    지정하여 동적으로 값을 변경할 수 있다. 이때 n은 1 부터 10사이의
    값이어야 한다. 하지만, LOG_ARCHIVE_START 값이 FALSE로 지정되어
    있을 경우에는, 명령을 실행시켜도 아무런 영향을 미치지
    못한다.
    3. Archiver process의 갯수가 동적으로 바뀌는 메카니즘
    만약 LOG_ARCHIVE_START 값이 TRUE로 지정되어 있다면, 오라클에서는
    구동시 하나의 archiver process (ARC0)를 구동시킨다. 이 파라미터
    값은 필요시 LATER SYSTEM 명령으로 지정된 갯수만큼의
    archive process를 구동시킬 수 있다.
    예)
    SVRMGRL>alter system set LOG_ARCHIVE_MAX_PROCESSES=4;
    위 명령을 실행 시키면 다음과 같은 절차에 따라 ARC1, ARC2, ARC3를
    추가한다.
    1) Shadow process는 primary archive process에게 프로세스 갯수를
    늘릴 것을 요청한다.
    2) Archiver process는 kcrrschd 함수를 호출한다. (kcrrschd:
    다중 arch process를 schedule)
    3) 만약 요청된 process의 갯수가 현재 사용중인 archiver process
    갯수보다 작은지 확인한다. 만약 새로 지정된 값이 적거나, ARCHIVING이
    DISABLE 된 상태라면 다른 조치를 취하지 않고 return 한다. 그렇지
    않다면 지원되는 최대 갯수인 10을 넘는지 확인하고 10을 넘을 경우에는
    프로세스의 갯수를 10으로 지정한다.
    4) Scheduler 함수는 kcrxs{} structure에 대한 latch를 확보한다.
    여기서 kcrxs{} structure는 ARCH Activation status를 나타낸다.
    5) Scheduler 함수는 지정된 process 갯수 만큼 loop를 돌면서
    schedule된 상태를 structure KCRRSCHED에 반영시킨다.
    6) 그리고 나서 latch를 release 시킨 후 kcrrsmp 함수를 ( kcrrsmp:
    다중 arch processs 구동 ) 호출한다.
    7) kcrrsmp 함수는 kcrrxs{} structure (ARCH 구동 상태)에 대한 latch를
    확보하여 code 실행을 serialize 시켜 이 함수가 동시에 실행되더라도
    한번에 하나씩 실행될 수 있도록 한다.
    8) pending 상태에 있는 archiver process를 스케쥴링 하고, dead process가
    있으면 clean up 시킨다.
    9) 그리고 나서 이 함수는 지정된 process 갯수 만큼 loop를 돌면서
    KCRRSCHED 상태를 KCRRSTART으로 바꾸어, archiver process들을
    구동 준비 상태로 만든다.
    10) latch를 release 시킨 후 ARCH 프로세스를 구동시킨다.
    11) kcrrsmp함수는 latch를 다시 획득한다. 각각의 archiver 프로세스는
    자기 자신을 activate 시킬 것을 통보 받는다. archiver process는
    자기 자신을 activate 시킨 후 alert file에 관련 사항을 기록한다.
    12) 호출을 하는 함수는 모든 archiver process가 자기 자신을
    activate 시키고, kcrrxs structure의 내용을 갱신할 때 까지
    sleep 상태에서 대기한다.
    13) 끝으로, 현재 archiver process의 갯수가 요청된 archiver process
    의 갯수와 일치 하면, latch를 release 시키고 break 한다. ( C
    에서의 break )
    alert. log 에는 위 과정이 다음과 같이 반영된다.
    sql: prodding the archiver
    ALTER SYSTEM SET log_archive_max_processes=4;
    Tue Jul 13 02:15:14 1999
    ARC0: changing ARC1 KCRRNOARCH->KCRRSCHED
    ARC0: changing ARC2 KCRRNOARCH->KCRRSCHED
    ARC0: changing ARC3 KCRRNOARCH->KCRRSCHED
    ARC0: STARTING ARCH PROCESSES
    ARC0: changing ARC1 KCRRSCHED->KCRRSTART
    ARC0: changing ARC2 KCRRSCHED->KCRRSTART
    ARC0: changing ARC3 KCRRSCHED->KCRRSTART
    ARC0: invoking ARC1
    Tue Jul 13 02:15:15 1999
    ARC1: changing ARC1 KCRRSTART->KCRRACTIVE
    Tue Jul 13 02:15:15 1999
    ARC0: Initializing ARC1
    ARC0: ARC1 invoked
    ARC0: invoking ARC2
    ARC1 started with pid=10
    ARC1: Archival started
    Tue Jul 13 02:15:15 1999
    ARC2: changing ARC2 KCRRSTART->KCRRACTIVE
    Tue Jul 13 02:15:15 1999
    ARC0: Initializing ARC2
    ARC2 와 ARC3도 동일한 절차를 따른다.
    흥미로운 사실은 프로세스의 갯수를 줄일 수도 있다는 것이다. 예를 들어
    다음과 같은 명령을 실행시킬 경우
    SVRMGRL>alter system set LOG_ARCHIVE_MAX_PROCESSES=2;
    다음과 같은 작업이 순서대로 실행된다.
    1) shadow process는 현재 active 상태인 archiver process와 접속을 한다.
    2) archiverprocess는 kcrrxmp 함수를 호출한다. ( kcrrxmp: 다중
    Arch process 정지 )
    3) kcrrxmp 함수는 kcrrxs{} structure에 (ARCH 구동 상태) 대한 latch를 획득하여 다른 프로세스에서 structure를 동시에 병경하지 않도록 한다.
    4) 새로 요청된 archiver process의 갯수가 현재 사용중인 archiver process
    의 갯수보다 작은지 확인한다.
    5) 만약 작다면, archiver process 목록 가운데, 가장 최근에 schedule
    되어, archival 작업에 schedule 차례가 금방 돌아 오지 않을 프로세스를
    찾아낸다.
    6) 각각의 프로세스에 대해 KCRRACTIVE 상태에서 KCRRSHUTDN로 상태를
    변경할 것을 요청한다.
    7) 상태가 바뀌면, OS에서 해당 프로세스를 종료시키도록 하고, 상태를
    KCRRDEAD로 바꾼다. 관련된 상태 정보가 정리되고 kcrrxs{} structure의
    내용이 갱신된다.
    6) ,7) 과정은 지정된 archiver process 갯수로 줄어들 때 까지
    반복된다.
    8) 새로운 archiver process의 갯수로 kcrrxs structure 내용이 갱신된다.
    9) latch를 release 시킨다.
    상태 변동은 다음과 같이 alert. log 파일에 반영된다.
    sql: prodding the archiver
    Tue Jul 13 00:34:20 1999
    ARC3: changing ARC0 KCRRACTIVE->KCRRSHUTDN
    ARC3: sending ARC0 shutdown message
    ARC3: changing ARC1 KCRRACTIVE->KCRRSHUTDN
    ARC3: sending ARC1 shutdown message
    ARC3: received prod
    Tue Jul 13 00:34:20 1999
    ALTER SYSTEM SET log_archive_max_processes=2;
    Tue Jul 13 00:34:20 1999
    ARCH shutting down
    ARC0: Archival stopped
    ARC0: changing ARC0 KCRRSHUTDN->KCRRDEAD
    Tue Jul 13 00:34:20 1999
    ARCH shutting down
    ARC1: Archival stopped
    ARC1: changing ARC1 KCRRSHUTDN->KCRRDEAD
    4. 어떤 archiver process가 online log를 archive시켰는지 판단 방법
    Archiver process는 round-robin 방식으로 archiving 작업을 수행하도록
    schedule 된다. 만약 다중 archiver process가 부하에 따라 activate 된
    경우는 여러가지 경우의 수가 있을 수 있다. Oracle 8i에서는 다중
    archive log dest를 지원하면서 archive log에 대한 duplexing을 지원
    하기 때문에, 어떤프로세스가 log file을 archive 시켰는지를 기록할 필요가
    있다.
    Oracle 8i에서 archival 작업은 성공할 때 마다 trace file에 archiver
    process 명을 기록한다.
    다음은 관련 trace file의 주요 내용이다.
    Instance name: v815
    Redo thread mounted by this instance: 1
    Oracle process number: 12
    Unix process pid: 3658, image: oracle@oracle8i (ARC3)
    *** Session ID:(12. 1) 1999. 07. 13. 02. 15. 15. 000
    *** 1999. 07. 13. 02. 15. 15. 000
    *** 1999. 07. 13. 02. 33. 06. 000
    ARC3: Begin archiving log# 1 seq# 38 thrd# 1
    ARC3: VALIDATE
    ARC3: PREPARE
    ARC3: INITIALIZE
    ARC3: SPOOL
    ARC3: Creating archive destination 1 : '/bigdisk/oracle8i/dbs/arch/1_38.
    dbf'
    ARC3: Archiving block 1 count 1 to : '/bigdisk/oracle8i/dbs/arch/1_38.
    dbf'
    ARC3: Closing archive destination 1 : /bigdisk/oracle8i/dbs/arch/1_38.
    dbf
    ARC3: FINISH
    ARC3: Archival success destination 1 : '/bigdisk/oracle8i/dbs/arch/1_38.
    dbf'
    ARC3: COMPLETE, all destinations archived
    ARC3: ArchivedLog entry added: /bigdisk/oracle8i/dbs/arch/1_38. dbf
    ARC3: ARCHIVED
    *** 1999. 07. 13. 02. 33. 06. 000
    ARC3: Completed archiving log# 1 seq# 38 thrd# 1
    이 정보를 가지고, archive process 3이 log sequence 38번을
    destination 1 :/bigdisk/oracle8i/dbs/arch 에 archive 시킨 것을 알 수 있다.
    Reference Ducumment
    <Note:73163.1>

    제품 : ORACLE SERVER
    작성날짜 : 2002-04-19
    MULTIPLE ARCHIVER PROCESSES FAQ ( ORACLE 8I NEW FEATURE )
    =========================================================
    PURPOSE
    1. LOG_ARCHIVE_MAX_PROCESSES가 하는 역할
    2. LOG_ARCHIVE_MAX_PROCESSES 값은 동적으로 변경 가능한지 여부
    3. Archiver process의 갯수가 동적으로 바뀌는 메카니즘
    4. 어떤 archiver process가 online log를 archive시켰는지 판단 방법
    Explanation
    1. LOG_ARCHIVE_MAX_PROCESSES가 하는 역할
    Oracle 8i에는 다중 archive destination을 지원하며, 단일 archiver의
    부하를 줄여주기 위해 multiple archiver process를 사용할 수 있다.
    LOG_ARCHIVE_MAX_PROCESSES 파라미터로 구동시킬 최대 ARCH 프로세스의
    갯수를 지정하면 된다.
    만약 LOG_ARCHIVE_START 값이 TRUE로 지정되어 있다면 인스턴스 구동시
    init 파일에 지정된 LOG_ARCHIVE_MAX_PROCESSES에 지정된 값을 읽어
    들인다. 만약 LOG_ARCHIVE_START 값이 true인데 LOG_ARCHIVE_MAX_PROCESSES
    값이 별도로 지정되어 있지 않을 경우에는 arc0 프로세스만을 구동시킨다.
    LOG_ARCHIVE_MAX_PROCESSES 값이 별도로 지정되었을 경우 (1 - 10 범위),
    arc0, arc1 과 같은 추가 프로세스를 구동시킨다.
    하지만, 이 파라미터 값을 기본값 1이 아닌 다른 값으로 명시적으로 지정할
    필요는 없다. 왜냐하면, 시스템에서 몇개의 ARCn 프로세스가
    필요한지를 판단하여, 추가 ARCn 프로세스를 생성하기 때문이다.
    2. LOG_ARCHIVE_MAX_PROCESSES 값은 동적으로 변경 가능한지 여부
    alter system 명령에서 set LOG_ARCHIVE_MAX_PROCESSES=n 으로
    지정하여 동적으로 값을 변경할 수 있다. 이때 n은 1 부터 10사이의
    값이어야 한다. 하지만, LOG_ARCHIVE_START 값이 FALSE로 지정되어
    있을 경우에는, 명령을 실행시켜도 아무런 영향을 미치지
    못한다.
    3. Archiver process의 갯수가 동적으로 바뀌는 메카니즘
    만약 LOG_ARCHIVE_START 값이 TRUE로 지정되어 있다면, 오라클에서는
    구동시 하나의 archiver process (ARC0)를 구동시킨다. 이 파라미터
    값은 필요시 LATER SYSTEM 명령으로 지정된 갯수만큼의
    archive process를 구동시킬 수 있다.
    예)
    SVRMGRL>alter system set LOG_ARCHIVE_MAX_PROCESSES=4;
    위 명령을 실행 시키면 다음과 같은 절차에 따라 ARC1, ARC2, ARC3를
    추가한다.
    1) Shadow process는 primary archive process에게 프로세스 갯수를
    늘릴 것을 요청한다.
    2) Archiver process는 kcrrschd 함수를 호출한다. (kcrrschd:
    다중 arch process를 schedule)
    3) 만약 요청된 process의 갯수가 현재 사용중인 archiver process
    갯수보다 작은지 확인한다. 만약 새로 지정된 값이 적거나, ARCHIVING이
    DISABLE 된 상태라면 다른 조치를 취하지 않고 return 한다. 그렇지
    않다면 지원되는 최대 갯수인 10을 넘는지 확인하고 10을 넘을 경우에는
    프로세스의 갯수를 10으로 지정한다.
    4) Scheduler 함수는 kcrxs{} structure에 대한 latch를 확보한다.
    여기서 kcrxs{} structure는 ARCH Activation status를 나타낸다.
    5) Scheduler 함수는 지정된 process 갯수 만큼 loop를 돌면서
    schedule된 상태를 structure KCRRSCHED에 반영시킨다.
    6) 그리고 나서 latch를 release 시킨 후 kcrrsmp 함수를 ( kcrrsmp:
    다중 arch processs 구동 ) 호출한다.
    7) kcrrsmp 함수는 kcrrxs{} structure (ARCH 구동 상태)에 대한 latch를
    확보하여 code 실행을 serialize 시켜 이 함수가 동시에 실행되더라도
    한번에 하나씩 실행될 수 있도록 한다.
    8) pending 상태에 있는 archiver process를 스케쥴링 하고, dead process가
    있으면 clean up 시킨다.
    9) 그리고 나서 이 함수는 지정된 process 갯수 만큼 loop를 돌면서
    KCRRSCHED 상태를 KCRRSTART으로 바꾸어, archiver process들을
    구동 준비 상태로 만든다.
    10) latch를 release 시킨 후 ARCH 프로세스를 구동시킨다.
    11) kcrrsmp함수는 latch를 다시 획득한다. 각각의 archiver 프로세스는
    자기 자신을 activate 시킬 것을 통보 받는다. archiver process는
    자기 자신을 activate 시킨 후 alert file에 관련 사항을 기록한다.
    12) 호출을 하는 함수는 모든 archiver process가 자기 자신을
    activate 시키고, kcrrxs structure의 내용을 갱신할 때 까지
    sleep 상태에서 대기한다.
    13) 끝으로, 현재 archiver process의 갯수가 요청된 archiver process
    의 갯수와 일치 하면, latch를 release 시키고 break 한다. ( C
    에서의 break )
    alert. log 에는 위 과정이 다음과 같이 반영된다.
    sql: prodding the archiver
    ALTER SYSTEM SET log_archive_max_processes=4;
    Tue Jul 13 02:15:14 1999
    ARC0: changing ARC1 KCRRNOARCH->KCRRSCHED
    ARC0: changing ARC2 KCRRNOARCH->KCRRSCHED
    ARC0: changing ARC3 KCRRNOARCH->KCRRSCHED
    ARC0: STARTING ARCH PROCESSES
    ARC0: changing ARC1 KCRRSCHED->KCRRSTART
    ARC0: changing ARC2 KCRRSCHED->KCRRSTART
    ARC0: changing ARC3 KCRRSCHED->KCRRSTART
    ARC0: invoking ARC1
    Tue Jul 13 02:15:15 1999
    ARC1: changing ARC1 KCRRSTART->KCRRACTIVE
    Tue Jul 13 02:15:15 1999
    ARC0: Initializing ARC1
    ARC0: ARC1 invoked
    ARC0: invoking ARC2
    ARC1 started with pid=10
    ARC1: Archival started
    Tue Jul 13 02:15:15 1999
    ARC2: changing ARC2 KCRRSTART->KCRRACTIVE
    Tue Jul 13 02:15:15 1999
    ARC0: Initializing ARC2
    ARC2 와 ARC3도 동일한 절차를 따른다.
    흥미로운 사실은 프로세스의 갯수를 줄일 수도 있다는 것이다. 예를 들어
    다음과 같은 명령을 실행시킬 경우
    SVRMGRL>alter system set LOG_ARCHIVE_MAX_PROCESSES=2;
    다음과 같은 작업이 순서대로 실행된다.
    1) shadow process는 현재 active 상태인 archiver process와 접속을 한다.
    2) archiverprocess는 kcrrxmp 함수를 호출한다. ( kcrrxmp: 다중
    Arch process 정지 )
    3) kcrrxmp 함수는 kcrrxs{} structure에 (ARCH 구동 상태) 대한 latch를 획득하여 다른 프로세스에서 structure를 동시에 병경하지 않도록 한다.
    4) 새로 요청된 archiver process의 갯수가 현재 사용중인 archiver process
    의 갯수보다 작은지 확인한다.
    5) 만약 작다면, archiver process 목록 가운데, 가장 최근에 schedule
    되어, archival 작업에 schedule 차례가 금방 돌아 오지 않을 프로세스를
    찾아낸다.
    6) 각각의 프로세스에 대해 KCRRACTIVE 상태에서 KCRRSHUTDN로 상태를
    변경할 것을 요청한다.
    7) 상태가 바뀌면, OS에서 해당 프로세스를 종료시키도록 하고, 상태를
    KCRRDEAD로 바꾼다. 관련된 상태 정보가 정리되고 kcrrxs{} structure의
    내용이 갱신된다.
    6) ,7) 과정은 지정된 archiver process 갯수로 줄어들 때 까지
    반복된다.
    8) 새로운 archiver process의 갯수로 kcrrxs structure 내용이 갱신된다.
    9) latch를 release 시킨다.
    상태 변동은 다음과 같이 alert. log 파일에 반영된다.
    sql: prodding the archiver
    Tue Jul 13 00:34:20 1999
    ARC3: changing ARC0 KCRRACTIVE->KCRRSHUTDN
    ARC3: sending ARC0 shutdown message
    ARC3: changing ARC1 KCRRACTIVE->KCRRSHUTDN
    ARC3: sending ARC1 shutdown message
    ARC3: received prod
    Tue Jul 13 00:34:20 1999
    ALTER SYSTEM SET log_archive_max_processes=2;
    Tue Jul 13 00:34:20 1999
    ARCH shutting down
    ARC0: Archival stopped
    ARC0: changing ARC0 KCRRSHUTDN->KCRRDEAD
    Tue Jul 13 00:34:20 1999
    ARCH shutting down
    ARC1: Archival stopped
    ARC1: changing ARC1 KCRRSHUTDN->KCRRDEAD
    4. 어떤 archiver process가 online log를 archive시켰는지 판단 방법
    Archiver process는 round-robin 방식으로 archiving 작업을 수행하도록
    schedule 된다. 만약 다중 archiver process가 부하에 따라 activate 된
    경우는 여러가지 경우의 수가 있을 수 있다. Oracle 8i에서는 다중
    archive log dest를 지원하면서 archive log에 대한 duplexing을 지원
    하기 때문에, 어떤프로세스가 log file을 archive 시켰는지를 기록할 필요가
    있다.
    Oracle 8i에서 archival 작업은 성공할 때 마다 trace file에 archiver
    process 명을 기록한다.
    다음은 관련 trace file의 주요 내용이다.
    Instance name: v815
    Redo thread mounted by this instance: 1
    Oracle process number: 12
    Unix process pid: 3658, image: oracle@oracle8i (ARC3)
    *** Session ID:(12. 1) 1999. 07. 13. 02. 15. 15. 000
    *** 1999. 07. 13. 02. 15. 15. 000
    *** 1999. 07. 13. 02. 33. 06. 000
    ARC3: Begin archiving log# 1 seq# 38 thrd# 1
    ARC3: VALIDATE
    ARC3: PREPARE
    ARC3: INITIALIZE
    ARC3: SPOOL
    ARC3: Creating archive destination 1 : '/bigdisk/oracle8i/dbs/arch/1_38.
    dbf'
    ARC3: Archiving block 1 count 1 to : '/bigdisk/oracle8i/dbs/arch/1_38.
    dbf'
    ARC3: Closing archive destination 1 : /bigdisk/oracle8i/dbs/arch/1_38.
    dbf
    ARC3: FINISH
    ARC3: Archival success destination 1 : '/bigdisk/oracle8i/dbs/arch/1_38.
    dbf'
    ARC3: COMPLETE, all destinations archived
    ARC3: ArchivedLog entry added: /bigdisk/oracle8i/dbs/arch/1_38. dbf
    ARC3: ARCHIVED
    *** 1999. 07. 13. 02. 33. 06. 000
    ARC3: Completed archiving log# 1 seq# 38 thrd# 1
    이 정보를 가지고, archive process 3이 log sequence 38번을
    destination 1 :/bigdisk/oracle8i/dbs/arch 에 archive 시킨 것을 알 수 있다.
    Reference Ducumment
    <Note:73163.1>

  • SAPINST failed step "Install Oracle Database (post processing)"

    i will install ep6.0 with oracle database 9.2.0.4 on sun solaris.
    the SAPINST failed at the step "Install Oracle Database (post processing) with follow error.
    the oui - installer (runinstaller) finished sucessfully.
    ERROR 2004-08-31 16:05:17
    CJS-00084  SQL statement or script failed. DIAGNOSIS: Error message: ORA-01501: CREATE DATABASE failedORA-01101: database being created currently mounted by some other instance
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
    With the Partitioning optionJServer Release 9.2.0.4.0 - Production. SOLUTION: See ora_sql_results.log and the Oracle documentation for details.
    no user is logged on the Database. Database is not running (is shutdowned and unmounted). No Oracle process is running.
    pleas help.
    thanks
    armin hadersbeck

    Hi Armin,
    We're going to install EP 6 stack3 with Oracle 9.2.0.4 and Solaris 9.    We have exactly the same error as you during sapinst.
    How do you solved that ?
    Thanks a lot for your help,
    Regards from Mexico,
    Diego

  • How to stop and start only the process of Oracle Application Express?

    I'd like to know how to stop the process of Oracle Application Express on my server installed oracle express package.
    After installed Oracle Express edition, not only oracle database server processes but also Oracle Application Express, such as http server, is started automatically...
    I hope to stop and start Application Express on demand but is this feature enabled?

    Oracle Apex is an API, if that helps you understand / visualize. You do not start Apex process nor stop it.
    When an Apex session starts it starts calling the API.
    You can however start / stop the listener. It may be OHS, ApexListener and the J2EE container running it, OC4J or any other "server" that you are using.
    The built-in EPG is something like an API again, you cannot start / stop it but you can disable/enable it with DBMS_XDB.SETHTTPPORT API.
    Regards,

  • What is the role of Lns process in oracle 10g data guard

    Hi ,
    plz help me out to find out the actual working of lns process in oracle 10g data guard
    when i use SYNC redo transport
    the output of v$managed_stanbdy is like that ..
    PROCESS PID STATUS CLIENT_PROCESS GR# SEQ#
    ARCH 9258 CLOSING ARCH 2 498
    ARCH 9260 CLOSING ARCH 1 499
    ARCH 9262 CLOSING ARCH 2 496
    ARCH 9264 CLOSING ARCH 1 497
    LGWR 9206 CLOSING LGWR 2 482
    its not display any info about lns,thats means lns is not working in SYNC redo transport mode ?
    but if i changed it to ASYNC then the out put of v$managed_stanbdy is like this ..
    PS PID STS CPS GR# SEQ#
    ARCH 9258 CLOSING ARCH 1 509
    ARCH 9260 CLOSING ARCH 2 510
    ARCH 9262 CLOSING ARCH 1 505
    ARCH 9264 CLOSING ARCH 2 508
    LGWR 9206 CLOSING LGWR 1 503
    LNS 10528 CLOSING LNS 2 510
    Now it display all the info about lns process...
    i read in oracle documentation that lns process send redo data from primary,( through network service ) to RFS on standby side.
    but first output means that lns is not working,if not then which process send redo from primary to RFS on standby ?
    i also read in some blog that lgwr use some extra buffer size from primary db SGA ,to write redo in that buffer ,ans lns read redo from that buffer and send it to RFS on stanby side,
    i m totally confused ..can u plz help me with correct logic behind this .
    thanx in advance.

    Hello,
    On the primary database when you run the v$managed_standby, it shows up the LNS process as this process sends redo info to the standby database and on the standby database the RFS process receives the redo information.
    So on the primary database when you query the v$managed_standby, it shows up LNS and on the standby database when you query the v$managed_standby it shows up RFS. Please let us know where you are running the query.
    Refer this http://datadisk.co.uk/html_docs/oracle_dg/architecture.htm
    969752     
    Handle:     969752
    Status Level:     Newbie
    Registered:     Nov 6, 2012
    Total Posts:     9
    Total Questions:     2 (2 unresolved)
    Name     Hemendra Singh
    Location     NoidaPlease consider closing your questions by providing appropriate points and marking it as answered. Please keep the forum clean !

  • Error processing request  ORACLE-01403:no data found (pt.2)

    Hi, all.
    We've experienced the problem that seems to be resolved in topic
    Error processing request  ORACLE-01403:no data found
    I followed the lead but didn't found problem they were talking about - no two #FORM_OPEN# directive in page template.
    We have Apex 4.2.2.00.11 patchset installed
    I cannot tell Apex Listner version for now because our sysadmin who installed it is absent
    And problem appears in different versions of Internet Expolrer, but application is working fine in Firefox

    Hi, all.
    We've experienced the problem that seems to be resolved in topic
    Error processing request  ORACLE-01403:no data found
    I followed the lead but didn't found problem they were talking about - no two #FORM_OPEN# directive in page template.
    We have Apex 4.2.2.00.11 patchset installed
    I cannot tell Apex Listner version for now because our sysadmin who installed it is absent
    And problem appears in different versions of Internet Expolrer, but application is working fine in Firefox

  • Mapping LDAP Role in Building Your First Process with Oracle BPM 11g

    I'm working on "Building Your First Process with Oracle BPM 11g" I'm at the end of step where assigns user for the requester. The problem is in identity lookup, "Realm" is empty for Remote_WLServer.
    Servers are up and running. Demo user community has been loaded - I can see the list of users and groups in the administration server under myrealm. We haven't done much since SOA suite 11g installation. I'm probably the first one who uses this. I wonder we have a missing set up? Can you me what's missing? Appreciate your help in advance.

    I get this error message when I clicked gear icon.
    "Server exception is : Connection refused from server"
    Here is the result of testing Remove_WLServer connection. Does this cause the issue?
    Testing JSR-160 Runtime ... failed.
    Cannot establish connection.
    Testing JSR-160 DomainRuntime ... skipped.
    Testing JSR-88 ... skipped.
    Testing JSR-88-LOCAL ... skipped.
    Testing JNDI ... skipped.
    Testing JSR-160 Edit ... skipped.
    Testing HTTP ... success.
    Testing Server MBeans Model ... skipped.
    Testing HTTP Authentication ... success.
    2 of 9 tests successful.
    I have installed JDeveloper 9i, 10g, and 11g in my laptop. SOA is installed on linux.

  • DEPRECIATION PROCESS IN ORACLE ASSETS(FADEPR)

    제품 : FIN_FA
    작성날짜 : 2003-05-20
    DEPRECIATION PROCESS IN ORACLE ASSETS(FADEPR)
    =============================================
    PURPOSE
    Oracle Assets 에서의 depreciation process 를 간략하게 기술
    Explanation
    DEPRECIATION IN ORACLE ASSETS
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The Depreciation Program (FADEPR) 은 감가상각비 및 자산조정액을 계산하여 감가상각 누계액에 Update 하는 역할을 한다. 감가상각을 실행하면 다음 4가지 독립적인 Request가 실행된다.
    =======================================================================
    - Generate Accounts (FAGDA - Release 11 and 11i)
    - Calculate Gain/Loss (FARET)
    - Depreciation (FADEPR)
    - Journal Entry Reserve Ledger Report (FAS400) for a Corporate book
    or Tax Reserve Ledger Report (FAS480) for a TAX book.
    - Process Pending Transactions (11i only)
    1.Generate Accounts process (FAGDA)은 필요한 GL code combinations 을 생성하여 FA_DISTRIBUTION_ACCOUNTS table에 값을 입력한다. Generate Accounts (FAGDA)는 감가상각 Process의 성능향상을 위해 Depreciation Program (FADEPR)과는 별도로 실행된다. Generate Accounts Running시간은 자산의 수 Distribution의 수에 따라 달라진다.
    2. Calculate Gain/Loss Process(FARET)는 처분된 자산의 손익을 계산하는 과정으로 당기의 처분/취소 자산의 감가상각액을 대상으로 한다. FARET는 꼭 감가상각을 실행하면 실행되는 것은 아니다. 자산의 처분/취소가 일어날 때마다 실행된다.
    3. Depreciation process 는 감가상각비 및 자산조정액을 계산한 후 해당기를 마감한다.마감한 Period 에 대해 다시 Open 하는 것이 불가능하므로 감가상각을 돌리기 전 모든 Transaction을 끝내야 한다.
    4. Process Pending Transactions program 은 Depreciation request set에 Mass Addtion Post작업을 추가하여, 감가상각이 실행 후 다음기를 Open할 때 Mass Additions Post job 이 자동적으로 실행되도록 한다.
    Oracle Assets 은 감가상각비를 계산할 때 다음과정을 거치게 된다.
    =================================================================
    1. DPIS와 Prorate convention을 이용하여 Prorate Data를 결정한다.
    2. Prorate data와 Prorate Calendar를 이용하여 Prorate Period를 결정한다.
    3. 감가상각율을 결정한다.
    4. 감가대상액을 결정한다.
    5. 감가상각비를 결정한다.
    6. 당기 감가상각비를 결정한다.
    각 과정의 부가적인 설명은 Note:77371.1 를 참조하세요.
    Example
    Reference Documents
    Note:77371.1

    Hello.
    Set the asset cost to zero.
    Octavio

Maybe you are looking for

  • In Object Properties dialog box, modify "tab path"...

    For FrameMaker versions up to and including 8 (and I suspect 9). Select a graphic, then click in sequence ESC g o to open the Object Properties dialog box. By default the dialog box opens with the insertion point in the Width text entry area. Now pre

  • My iphone 3gs is not showing in itunes despite restarting and reloading itunes,please help!

    I have re-loaded itunes but my phone is not showing. I have run diagnostics on it as well but the tests show that the ports cannot find the device. Any suggestions are gratefully received. Thanks.

  • JPA Weird Transaction error ... ?

    Hi All, For this code i am getting a weird exception which follows the code block.. i have started a Transaction but still openjpa gives this exception   public static void deletePort(String port){        BcsPort bPort=em.find(BcsPort.class, port);  

  • My saved file changes have disappeared

    I'm using a Macbook Air and Pages to write. It's running OS 10.9.5. I was writing today, all day. I saved every couple of minutes. I wanted to back up today's changes to my manuscript so I closed the Pages file to copy it to a drive. When I reopened

  • EA6350 usb storage problems

    I have a WD Mybook 3tb drive setup as my usb storage, and it is very unreliable. At times it works fine, but is unusble a large majority of the time. As in, it can't access a single file on the drive. It doesn't seem to be related to access either, a