Multiple dbwr processes

Hi,
just looking for peoples thoughts on how many dbwr processes a system should have.
We have a database instance doing OLTP 24 * 7, with a single dbwr but linux ASYNC I/O enabled.
The server has 8 logical cpus and the thought is that there should be a dbwr process for each cpu.
My understanding however was that with ASYNC I/O enabled at OS level that the database required just a single DBWR process.
regards
Alan

Pavan Kumar wrote:
Hi,
I read this with respect to ORACLE 8i Verison and check with respect 9i.
Will the result of cpu_count parameter be different from the fixed table you mentioned?
Are you sure on this.. ??
Refer : http://www.pvmehta.com/new/db_writer_process%20or%20dbwr_io_slaves.htm (History ;-))
Let me know ur views..waiting for your comments.
- Pavan Kumar NPavan,
AFAIK, the db_writer_processes will be equal to the number o LRU Latches (db_block_lru_latches), since each latch set will be handled by one db_writer process. But From 9i version the "db_block_lru_latches" is hidden and the db_writer_processes must be less than the number of CPUs .Either you read and understood it wrong or I am missing something? Where it is mentioned that LRU latches are going to control the DBWR process?
Here is the link to 8i,
http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76961/ch131.htm#50255
DB_BLOCK_LRU_LATCHES specifies the maximum number of LRU latch sets. The buffers of a buffer pool are equally divided among the working LRU latch sets of the buffer pool so that each buffer is protected by one LRU latch. Normally, the more latches you specify, the less contention exists for those latches. However, too many latches may result in small LRU lists, potentially reducing the cache life of a database block. The maximum of (CPU_COUNT x 2 x 3) ensures that the number of latches does not exceed twice the product of the number of CPUs and the number of buffer pools.LRU latch control the buffers movement in the LRU list within one workarea. Workareas are 2*cpu_count( I need to check that whether the same is true for 10g or not) so this means that there will be 1:1 relationship between LRU latch and one workarea. Now , here there "may be" a possibility that one DBWR may not be sufficient for the entire cache so there may be a need for multiples of them.But still, that doesn't signfy anywhere that the LRU latches and DBWRs are supposed to be in 1:1 ratio or the former control or determines the other.Itmay be a need that one has to go for mor e number of DBWRs. But that still doesn't mean that there must to be a DBWR for one workarea set in correlation with LRU latch.
I couldn't find any given reference in 9i or beyond as the parameter was deprecated from 9i. Can you point me to the 9i docs where it is mentioned?
I didin't understand the link that youhave given.Its seems to be never updated beyond oracle 8 and a lot has changed since.I don't see that its of much use.
Lastly, I asked about the X$ table that you mentioned for the number of CPUs,
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> show parameter count
NAME                                 TYPE        VALUE
active_instance_count                integer
cpu_count                            integer     2
db_file_multiblock_read_count        integer     16
plsql_native_library_subdir_count    integer     0
SQL> select KVIIVAL from X$KVII where KVIITAG='ksbcpu'
  2  /
no rows selected
SQL>  select KVIIVAL from X$KVII where KVIITAG='KSBCPU';
no rows selected
SQL>I have got no result from the query of yours while simply the parameter is giving number of cpus.
Cheers
Aman....

Similar Messages

  • 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>

  • Photoshop elements 8 not proceeding at multiple file processing

    Hi everyone,
    I've got the following problem with photoshop elements 8. I worked for a long time with it. Using the multiple file processing functionality a lot. I do quite a lot of big shoots and I only use the raw settings for processing. After that I let photoshop elements do the rest of the work, which is converting all my raw images into jpegs and resizing them to prepare them for uploading. These shoots often contain more then 200 photographs.
    As of this last weekend when I start up the multiple file processing window it starts opening the first file but does not proceed. Which means that I have to edit all the images by myself and resize them to the proper size etc etc etc. I really don't want to do this. This funcionality is one of the main reasons why I use photoshop. Anyone got any idea why it suddenly stopped working? Anyone else experienced this and solved it?
    Thanks a lot.
    Ben

    One thing to check is the bit depth that camera raw is set to.
    Open a raw photo in the camera raw dialog and look down along
    the bottom of the dialog where it says bit depth. If it says 16bit,
    change to 8 bit and press done.
    Photoshop elements sometimes won't process 16 bit files using process
    multiple files.
    MTSTUNER

  • Automatic Payment Programme for multiple vendors process

    Hi SAP FICO Experts,
    Please send Automatic Payment Programme for multiple vendors process
    Step by step
    Regards
    Maran

    Hi,
    You need to follow same process.
    Regards,
    Tejas

  • Multiple BPEL Process Managers in one environment?

    Hi,
    I'm quite new to the Oracle SOA product line, so please be gentle when my question doesn't make sense.
    I’m in the process of designing a new enterprise architecture based on service orientation. I’m looking at the Oracle SOA Suite software to get a better understanding of what things will look like when getting to the actual implementation.
    Some internal projects are moving fast, so I’m trying to get an understanding on how things will work out in the future. One case has my current attention, related to the BPEL Process Manager.
    A 3rd party vender is offering a specific solution which is using or based on the BPEL Process Manager. This solution can be purchased as a black-box. From the perspective of my new architecture I would like to purchase the SOA suite as a whole. New developments will most likely be using the BPEL Process Manager for orchestration. But when purchasing the black-box application, the environment will be extended with an extra BPEL Process Manager. My first thought is to try and incorporate the BPEL processes from the 3rd party vendor onto one single BPEL Process Manager. But I also think two BPEL Process Managers can have advantages.
    I’m not sure how to go forward with this. How should I handle this? Is it common to have multiple BPEL Process Managers in one environment or should I pursue maximum integration and only go for one BPEL Process Manager?

    Hi,
    We have similar situation at my current client site and we are going with two seperate BPEL PM installs for various reasons. One of the main driver in our case is conflicting in timelines of two seperate projects.
    But my suggestion is to go with single enterprise install if that's not breaking the 3rd-party vendor supporting contracts. This has obviously benefits of redecued infrastructure/administrative and other related costs. How many processes does the vendor has as part of their solution? If they are handful you know it doesn't justify having seperate environments.
    On the otherhand having two seperate installs isn't bad either depending on how big or small your SOA service/process orchestration footprint is. We don't have complete handle on the performance/scalability aspects of BPEL PM based on number of processes deployed. But as you can see that may be one of drivers to have redundancy in BPEL PM servers.
    End of the day there is no clear cut answer. If you have funding and resources, go with two seperate instances. But from architectural perspective better to have single install with clustering for better performance/scalability.
    HTH
    Regards,
    Rajesh

  • Individialized multiple file processing

    Hi everybody,
    I would appreciate your answer in the following: Does PSE provide a frame for individual setting of multiple file processing (macro command function?). The standardized one does not help me, as the quick fix option do not turn out as I need it.
    I usually have about 30-40 photos per day which I need to adjust with "smart fix 1%" - takes ages to do these all individually.
    Thanks for your reply.

    No, there's no macro function.  What you see in the "Process Multiple Files" dialog is all you get.
    You can use the free XnView image viewer application:
    http://www.xnview.com/
    which allows batch processing with image adjustments which can be customized.
    Ken

  • ORA-00471: DBWR process terminated with error when running mrua.pl

    we are upgrading to Portal 10.1.4 from 10.2.0.2.
    Right in the middle of the upgrade scripts running get ORA-00471: DBWR process terminated with error...
    Any suggestion?
    TIA

    sorry, it is me agin:
    I forgot:
    it must a trace file produced by PMON because it was PMON who killed the instance.
    These background processes function as watchdogs for each other. If one finds that one of the others is missing it will kill the instance.
    Regards,
    Lutz

  • ORA-00471: DBWR process terminated instance with error...

    we are upgrading to Portal 10.1.4 from 10.1.2.0.2
    Right in the middle of the upgrade scripts running get ORA-00471: DBWR process terminated with error...
    Any suggestion?
    TIA

    the only trace file referred in alert below:
    /u01/oracle/infr10.1.2/admin/iaspl14/bdump/iaspl14_pmon_30175.trc
    Oracle Database 10g Enterprise Edition Release 10.1.0.4.2 - Production
    With the Partitioning, OLAP and Data Mining options
    ORACLE_HOME = /u01/oracle/infr10.1.2
    System name: Linux
    Node name: sandbox3.e-hms.net
    Release: 2.6.9-67.ELsmp
    Version: #1 SMP Wed Nov 7 13:58:04 EST 2007
    Machine: i686
    Instance name: iaspl14
    Redo thread mounted by this instance: 1
    Oracle process number: 2
    Unix process pid: 30175, image: [email protected] (PMON)
    *** 2007-12-20 11:52:04.239
    *** SERVICE NAME:(SYS$BACKGROUND) 2007-12-20 11:52:04.201
    *** SESSION ID:(400.1) 2007-12-20 11:52:04.201
    error 471 detected in background process
    ORA-00471: DBWR process terminated with error

  • ORA-00471: DBWR process terminated with error

    Dear all,
    I got this error in alert log and database got down.
    ORA-00471: DBWR process terminated with error
    Wed May 24 19:17:37 2006
    PMON: terminating instance due to error 471
    Instance terminated by PMON, pid = 11642
    Wed May 24 19:28:15 2006
    I am having 10g R1 on LINUX.
    To find cause of error.I read somewhere that I should check sid_dbwr_*.trc file.
    But there is no file bdump related to DBWR.
    According to me there must be atleast one trace file of DBWR in bdump.
    Can you tell me why there is no trace file of DBWR in bdump and how can I ensure that i find trace files of dbwr in bdump.
    Waiting for your reply,
    Regards,
    Amit.
    Message was edited by:
    Amit Singla

    sorry, it is me agin:
    I forgot:
    it must a trace file produced by PMON because it was PMON who killed the instance.
    These background processes function as watchdogs for each other. If one finds that one of the others is missing it will kill the instance.
    Regards,
    Lutz

  • Multiple BPEL processes polling one inbound directory ?

    Hi All-
    Somewhere it mentioned that :
    "Multiple BPEL processes or multiple file adapters polling one inbound directory are not supported. Ensure that all are polling their own unique directory."
    Is this issue still there in 10.1.3.3.0?
    Please advice.
    Regards,
    Sreejit

    Hi,
    I have one directory say c:/files and I have two BPEL process accessing this folder say BPELA and BPELB.
    BPELA looking for the file with pattern file_A*.xml
    BPELB looking for the file with pattern file_B*.xml
    Still this phrase *"Multiple file adapters polling one inbound directory are not supported. Ensure that each is polling its own unique directory."* is a problem?
    Please advice.
    Regards,
    Sreejit

  • Decision Between Multiple Alternatives-Process Chain Formula

    Hi,
    I need to write a formula in the process type 'Decision Between Multiple Alternatives'.
    If the current date is on the end of month then i need to trigger a monthly snapshot dataflow if not then daily dataflow needs to be triggered.
    Anyone have any idea of how to write a formula for this?

    You can check both of these docs which defines how to use 'Decision Between Multiple Alternatives' process type:
    [http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/900be605-7b59-2b10-c6a8-c4f7b2d98bae&overridelayout=true]
    [http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/301fb325-9d90-2c10-7199-89fc7b5a17b9&overridelayout=true]

  • How to use the 'Decision between multiple alternatives' Process variant

    Hi ,
    Can anyone tell me how to use the 'Decision between multiple alternatives' Process variant in BI 7 Process chains ?
    The requuirement is that I have a DSO eg DSO 1 from which i have to load DSO 2 and DSO 3 . Now if the number of Records in DSO 1 are < 100 i will load DSO 2 from DSO 1 else i will load DSO 3 from DSO 1 .
    So in the PC i have used a 'ABAP Program' variant (which counts the number of rows in DSO 1) after loading DSO 1 and  after this 'ABAP Program' Variant , i have used the 'Decision between multiple alternatives' Process variant. Problem is it is giving me only some some system fields in the formula , like sy-datum or sy-timlo , which are of no use here .
    It would be great if i can receive some help here .
    --Devraj

    in RSPC you create a ABAP processing type "ending with specific values".
    We use true or false for things as you specify.
    your abap program should return a true or a false to indicate which of the situations is applicable.
    Is this helpful?
    Marco

  • Invoking MBean on multiple OC4J processes

    Hi
    I have an OAS with a OC4J instance that is running on multiple OC4J processes. Using the javax.management.remote classes how do I tell the JMXConnectorFactory class that it needs to connect to multiple OC4J processes to invoke the mbean methods?
    Regards,
    Néstor Boscán

    Hi
    I have an OAS with a OC4J instance that is running on multiple OC4J processes. Using the javax.management.remote classes how do I tell the JMXConnectorFactory class that it needs to connect to multiple OC4J processes to invoke the mbean methods?
    Regards,
    Néstor Boscán

  • Multiple finder processes

    Hello--
    I just upgraded to leopard (I did "Archive and Install") on my imac and since then, I have been having interesting finder issues... specifically with my desktop. Sometimes when I mount a drive or create a new file/folder on my desktop, i get this "ghost icon" behind it. When it happened today I went to "Force Quit" to relaunch finder when I noticed that I had two finders in the "Force Quit" dialog box. Quitting one of them got rid of the ghost icons. Anyone know why a second finder would start up like that?
    Potentially helpful information:
    - one user on system
    - i am using spaces
    - does not happen when system just starts up
    Thank you!
    -Jacob

    Do you have JSP pages? It is most likely javac compiling those pages
    into servlets.
    -- Rob
    Ajay Upadhyaya wrote:
    Hi,
    I'm seeing multiple JAVA processes getting started by WebLogic,
    The Environment is -
    Sun Sparc E250
    JAVA_OPTIONS="-ms256m -mx512m"
    WLS 6.1 sp1
    JDK 1.3.1 (default with WLS)
    The ps command shows this process relationships:
    ps -ef -o user,pid,ppid,vsz,fname,args | grep nmurthy | grep -v ksh |
    grep -v grep
    nmurthy 24626 7225 412952 java
    /home/nmurthy/bea/jdk131/jre/bin/../bin/sparc/native_threads/java -hotspot -
    ms2
    nmurthy 27171 7225 413360 java
    /home/nmurthy/bea/jdk131/jre/bin/../bin/sparc/native_threads/java -hotspot -
    ms2
    nmurthy 7222 392 1056 startWeb /bin/sh startWebLogic.sh
    nmurthy 21746 7225 412856 java
    /home/nmurthy/bea/jdk131/jre/bin/../bin/sparc/native_threads/java -hotspot -
    ms2
    nmurthy 26138 7225 412976 java
    /home/nmurthy/bea/jdk131/jre/bin/../bin/sparc/native_threads/java -hotspot -
    ms2
    nmurthy 7268 7225 413336 java
    /home/nmurthy/bea/jdk131/jre/bin/../bin/sparc/native_threads/java -hotspot -
    ms2
    nmurthy 7225 7222 417504 java
    /home/nmurthy/bea/jdk131/jre/bin/../bin/sparc/native_threads/java -hotspot -
    ms2
    Summary:
    7222 - this is the startWebLogic.sh process (running in nohup)
    7225 - this is the main Java process running WebLogic
    7268 , 26138 , 21746 , 27171 , 24626 are started from 7225
    In which scenarios this is possible to have multiple processes like these
    getting started by the main java process (which runs WLS). This is causing
    heavy load on the system.
    Any pointers ?
    Regards,
    Ajay

  • How to protect the creation of a db across multiple threads/processes?

    Given a multi-process, multi-threaded application, and one database file to be created, how can I guarantee that only one of the threads in one of the processes successfully creates the database, when ALL of the threads are going to either attempt to create it, or open it (if it already exists) upon startup?
    My current logic for all threads is:
    set open flags to DB_THREAD
    start transaction
    attempt to open the db
    if ENOENT
    abort transaction
    change open flags to DB_CREATE | DB_EXCL | DB_THREAD
    retry
    else if EEXIST
    abort transaction
    change open flags to DB_THREAD
    retry
    else if !ok
    # some other error
    end
    commit transaction
    I'm testing on Linux right now, with plans to move to Windows, AIX, and Solaris. What I'm experiencing on Linux is several of the threads (out of 10 threads I'm testing) will succeed in creating the database. The others will receive either either succeed in opening the first time through, or will receive the EEXIST when they do the open w/ create flags - ultimately, they open the same created db (I'm presuming the last one that's created by one of the other threads). Effectively, the open with DB_CREATE | DB_EXCL is not ensuring that only one DB is created. I was under the impression that opening in a transaction would guarantee this, but it does not, or maybe I'm doing something incorrectly?
    Should DB_CREATE | DB_EXCL and opening in a transaction guarantee that only one thread can create the database? Do I need to use another synchronization method?
    Note: I am running off of a local disk, not over NFS or anything like that.
    I tried taking out my transaction and using DB_AUTO_COMMIT instead, still no go - multiple threads still report they successfully created the DB. Using BDB 4.5.
    Thanks,
    Kevin Burge

    Brian,
    Thanks for the reply. I think I'm doing what you said, unless I'm misunderstanding. I do have all threads try to do the DB_CREATE | DB_EXCL. Are you saying I shouldn't use the DB_EXCL flag?
    The problem I was seeing with 10 threads calling open w/ DB_CREATE | DB_EXCL on the same db:
    * Between 1 and 9 threads would return success from db->open with the creation flags.... but the last one to create "wins".
    * All the other threads would get EEXIST, as expected.
    The threads that "lost", do get a successful return code from "open" with the create flags, but all data written to them is lost. They act normally except for the fact that the have a deleted file-handle that they are writing to. There's no indicator that records written to them are going into the void.
    My test:
    I had 10 threads each trying to create or open a recno db, then append 10 records, for a total of 100 records expected. Ultimately, I would end up with between 20 to 100 records in the db, depending on how many of the threads said they successfully created the db. So, if 5 threads said they created the db successfully, then 40 records would be missing, because 4 of those threads were writing to deleted file handles. If 2 threads said they created the db, then 10 records would be missing....If 8 threads, then 70 records missing, etc.
    In other words, multiple threads creating the db appears to work correctly, because there are no errors. It was the missing records that caught my attention, and prompted my question on this forum.
    For what it's worth, I've worked around the problem by opening a similarly named file via the open() system call, with O_CREAT|O_EXCL, which is guaranteed to be atomic. The first thread that can create this temp file is the only thread that can actually create the db - all others sleep upon open with ENOENT until it's created.
    Thanks,
    Kevin

Maybe you are looking for

  • HP Pavilion Elite e9280t Desktop PC power on/start windows issue

    HP Pavilion Elite e9280t Desktop PC, Windows 7 Pro.  When powered on (using the power switch), the blue power light and amber hard drive lights on the front illuminate, but monitor shows no signal and the keyboard lights do not come on.  F10 on the k

  • Photoshop Elements 11 restore has duplicated all my pictures

    I recently upgraded my computer from Windows XP to Windows 7 installing a new hard disk in the process. Before starting I used PSE 6 to backup the catalogue. I installed Windows 7 on the new disk and copied all my data files (including pictures) from

  • Link to directly submit to "waiting for me", instead of needing to upload every document.

    Can we get a submit button on an Adobe form that allows it to be delivered directly to my EchoSign account. This would be similar to my Archived documents email link. The idea being that paperwork can be channel to any user to send or manage from the

  • Java 5.0  Generics

    Hi Guys , Been playing around with Generics and have been confused with them. I have a generic CRUDAction : public abstract class CRUDAction<T, U, F> extends PageBean implements Preparable { protected U primaryKey;      * @return the primaryKey      

  • Prodcution support doubt?

    hai i have doubt that we do process chain monitoring.if problmes comes and we want to do correction manually , to which screen we should go Plz let me know secreen shots of that step by step. bye srinu