Wednesday, October 12, 2011

‘ORA-20001: Unable to build the Supervisor Hierarchy " when a terminated user involved

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: ‘ORA-20001: Unable to build the Supervisor Hierarchy " when a terminated user involved
When Submitting SSHR transaction, employee is getting a error Unable to create supervisor hierarchy even if approval is not required from the supervisor in the hierarchy who is terminated






Symptoms:
When Submitting SSHR transaction, employee is getting a error Unable to create supervisor hierarchy even if approval is not required from the supervisor in the hierarchy who is terminated


Log files:



Solution:



What you are reporting is the standard functionality of the system.

No terminated employees should exist in the complete approver chain.

Even if you have restricted approval up to 2 levels and have an employee at level 5 who is terminated, you will face the error "Unable to build Supervisor hierarchy ... "

As a business practice it is recommended that whenever an employee is terminated, his record should be removed from all the approval hierarchies.

The system will throw an error if any person within the approval hierarchy is terminated even if the person is not actually involved in the approval.

Apply patch 6960124 could help

This may be a problem at the customer end due to presence of terminated people in approval hierarchy.
As for AME, no terminated employees should exist in the approver chain.
Please check that.

In another forum response:

http://myforums.oracle.com/jive3/thread.jspa?messageID=4848395?

Issue: Receiving error message when employee attempts to enroll in a class. The employee's direct supervisor is still employed but the supervisor's supervisor has been terminated. The issue looks similar to Metalink ID 745430.1 but we are running Release 12.1.1 hrapcuwf.pkb 120.6.12010000.4 so the patch is not appropriate.


You cannot have terminated people in the hierarchy.
What has been fixed through bug mentioned in metalink note 745430.1 is even when there were no terminated people in hierarchy it was throwing this error. That fix is already present in 12.1.1.

Anyway You cannot have terminated people in the hierarchy.

References:

Note 745430.1 ‘ORA-20001: Unable to build the Supervisor Hierarchy, No Person Record Exists Error When Submitting Any Transaction In SSHR’ . . .
Get Oracle Certifications for all Exams
Free Online Exams.com

What is the maximum file size can be attached in Siebel application attachments.

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: What is the maximum file size can be attached in Siebel application attachments.







Solution:



There is no attachment size limit.

A file attachment applet (or attachment applet) provides access to external documents, such as spreadsheets, word processing documents, and slide presentations, from within Siebel applications. Attachment applets use functionality built into the Siebel file system.

An attachment applet has the Class property set to either CSSFrameListFile or CSSFrameFile. CSSFrameListFile is used for attachment list applets. CSSFrameFile is used for attachment form applets.

The size limit of attachments can be controlled by the xxxFileSize Field in the Attachment Applet


References:

For more information, please consult the "Configuring Siebel Business Applications Version 8.0, Rev. A" bookshelf, page 458.
Get Oracle Certifications for all Exams
Free Online Exams.com

In 11i instance, email for SSHR notification is not received.

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: In 11i instance, email for SSHR notification is not received.

WF Mailer is not delivering the emails, we have raised SSHR (Leave of Absence Request) , notification is not getting picked for emails






Symptoms:
From the Mailer log file, Mailer is actually delivering some emails, however some are not delivered because something is wrong with either the recipient role or the status of the notification.
Notif Preference of recipient user is set to QUERY.

Set notification preference of recipient user to MAILHTML or similar, Then Mailer will post the email.

Solution:




Notification was intended to be sent to user U1.
However, this user has set his notification preference to QUERY, means "Do not send me email".
That is why user did not receive any email for this SSHR notification.

To solve the issue, proceed with steps below:

- Login as U1
- Click on Preferences link in upper right corner
- Change the "Email Style" property from "Do not send me email" to a value which allows to receive notification by email, for instance "HTML Mail", then Apply
- Verify the issue by generating a fresh SSHR notification intended to be sent to U1, he should receive the email now.
Get Oracle Certifications for all Exams
Free Online Exams.com

APP-SQLAP-10637 the system can’t create this payment because one or more invoices selected for thispaymeny have also been selected in a payment batch

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: APP-SQLAP-10637 the system can’t create this payment because one or more invoices selected for thispaymeny have also been selected in a payment batch






Symptoms:
2 invoices can’t be selected for payment, the record stuck in the AP_SELECTED_INVOICES_ALL table

while creating the payment and selecting the invoices when save system is giving error APP-SQLAP-10637 the system can’t create this payment because one or more invoices selected for this payment have also been selected in a payment batch,...



Solution:



To implement the solution, please execute the following steps::
in your TEST instance FIRST :

1. Ensure that you have taken a backup of your system before applying the
recommended solution.

2. Run the following scripts in a TEST environment first:

1. Backup:
--------------
CREATE TABLE TAR_3_2171544221_ASIA AS
SELECT * FROM AP_SELECTED_INVOICES_ALL where checkrun_name like 'Quick Payment: ID=172102';

select count(*) from TAR_3_2171544221_ASIA;

-- 2 rows should be selected.

CREATE TABLE TAR_3_2171544221_ASICA AS
SELECT * from AP_SELECTED_INVOICE_CHECKS_ALL where checkrun_name like 'Quick Payment: ID=172102' ;

select count(*) from TAR_3_2171544221_ASICA;

-- 2 rows should be selected.

2. Fix:
--------

delete from AP_SELECTED_INVOICES_ALL where checkrun_name in (select
checkrun_name from TAR_3_2171544221_ASIA) ;

-- 2 rows should be deleted

delete from AP_SELECTED_INVOICE_CHECKS_ALL where checkrun_name in (select
checkrun_name from TAR_3_2171544221_ASICA);

-- 2 rows should be deleted

3. Commit if appropriate number of records are deleted.


5. Once the scripts complete, confirm that the data is corrected.
You can use the following SQL to confirm:

select count(*) from AP_SELECTED_INVOICES_ALL where checkrun_name in (select
checkrun_name from TAR_3_2171544221_ASIA) ;

It should display Zero


6. Confirm that the data is corrected whith the following steps in the Oracle Applications.

Try to pay the invoice


7. Migrate the solution as appropriate to other environments.

References:
Get Oracle Certifications for all Exams
Free Online Exams.com

1-1 FS isnt sending requests. They stay in submitted status

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: 1-1 FS isnt sending requests. They stay in submitted status






Symptoms:
Go to Marketing Responsibility--> Create Campaign Schedule--> Create Cover letter-->Attach Target list for this campaign schedule-->Click on Request Submit-->Go to Administration-->Check the status, it shows "SUBMITTED"


Solution:



There are only two reasons a 1-1 Fulfillment Request will stay in status 'Submitted':

1. The Agent who auctioned the request is not a member of a group assigned to a 1-1 Fulfillment Server.

2. The 1-1 Fulfillment Server start-up script jtffmctl.sh is not running.

Can you check that you have started the One to One Fulfillment Script jtffmctl.sh. Try the commmands

stop jtffmctl.sh

wait

kill any lingering processes

ps -ef | grep -i Fulfillment

Kill the processes returned from the command above

Check again to make sure no old processes linger

Start one to one fulfillment server

start jtffmctl.sh

wait

retest
Need to start the 1-1 server script start jtffmctl.sh
Get Oracle Certifications for all Exams
Free Online Exams.com

The invoice is not processed by revenue recognition but there is a REV row with account set flag = Y with the same ccid as the model row.

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: The invoice is not processed by revenue recognition but there is a REV row with account set flag = Y with the same ccid as the model row.

On 11.5.10.2 Invoice 1559 fails with
while trying to incomplete:

ORA-01403: no data found
ORA-06512: at "APPS.ARP_PROCESS_HEADER_POST_COMMIT", line 896
ORA-06512: at "APPS.ARP_PROCESS_HEADER", line 1793






Symptoms:

debug shows:

update_header_cover: p_customer_trx_id = 152667
update_header_cover: p_trx_number = 1559


arp_ctlgd_pkg.delete_f_ct_id()-
arp_lgd_pkg.set_to_dummy()+
arp_lgd_pkg.set_to_dummy()-
arp_ctlgd_pkg.update_f_ct_id()+ 11:34:47
arp_ctlgd_pkg.generic_update()+
arp_ctlgd_pkg.bind_dist_variables()+
arp_ctlgd_pkg.bind_dist_variables()-
0 rows updated
EXCEPTION: arp_ctlgd_pkg.generic_update()
Error at character: 0
EXCEPTION: arp_ctlgd_pkg.update_f_ct_id()
arp_process_header.reverse_revrec_effect: no dists to update.
arp_trx_util.set_term_in_use_flag()+
arp_trx_util.set_term_in_use_flag()-
l_status1 =
l_status2 =
l_status3 =
arp_process_header.update_header()-
arp_process_header_updte_cover.update_header_cover()-
arp_process_header.post_commit()+
ARP_TRX_VALIDATE.ar_entity_version_check()+
ARP_TRX_VALIDATE.ar_entity_version_check()-
EXCEPTION: arp_process_header.post_commit()



Solution:



There is an additional REV row in table ra_cust_trx_line_gl_dist_all that should not exist.

Apply a datafix to remove this additional row.
run the following datafix to get this invoice corrected:


1) Create backup table:

create table dist_152667
as
select * from ra_cust_trx_line_gl_dist_all
where customer_trx_id = 152667;

2) Check backup table

select count(*) from dist_152667;
-- this must return 4 rows

3) Run datafix:

exec dbms_application_info.set_client_info(101)
exec arp_global.g_allow_datafix := TRUE;

update ra_cust_trx_line_gl_dist
set account_set_flag='Y'
where cust_trx_line_gl_dist_id = 201466
and posting_control_id=-3;
-- 1 row must be updated

delete from ra_cust_trx_line_gl_dist
where cust_trx_line_gl_dist_id = 201481
and posting_control_id=-3;
-- 1 row must be deleted

exec arp_global.g_allow_datafix := FALSE;

4) Issue commit; only if the number of records updated and deleted is fine!.

After this query the invoice and try to incomplete the invoice.

References:


Note 398834.1.
Get Oracle Certifications for all Exams
Free Online Exams.com

Script to create synonyms using dynamic sql

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

--------------------------------------
-- Script to create synonyms using dynamic sql


---------------------------------------

SET ECHO OFF FEED OFF

SET PAGES 1000 LINES 200 HEAD OFF


ACCEPT MTUSER PROMPT "Enter user to create Synonym for (TARGET) :"
accept likeuser prompt "Enter like user id (SOURCE) :"

spool syn_&mtuser..sql


select 'create synonym &MTUSER..'||SYNONYM_NAME||' '||' FOR '||
TABLE_OWNER||'.'||TABLE_NAME||' ;'
FROM DBA_SYNONYMS
WHERE OWNER='&LIKEUSER'
/



spool off

ed syn_&mtuser..sql

PROMPT Run the output file syn_&mtuser..sql



Get Oracle Certifications for all Exams
Free Online Exams.com

Warning: Aiowait Timed Out 1 Times Database Not Responding Cannot kill processes

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: Warning: Aiowait Timed Out 1 Times Database Not Responding Cannot kill processes





Symptoms:
The database/instance is stopped.

You have Oracle processes still listed as running.

You have an error and/or trace files containing: 'WARNING: AIOWAIT TIMED OUT'

You attempt to kill the process via a terminal session and cannot.

kill -9
kill -15

None of the kill signals work.

Other symptoms that may indicate you are encountering this issue may be revealed in trace files containing syntax similar to:

Killing process (ospid 1567): (reason=x4 error=0)
... and the process is still alive after kill!



Solution:



The issue is caused by an O/S problem on Solaris.
Please reference Solaris Bug 6672470.
Please apply Sun Solaris patch 138888-01 to resolve the issue.
OR
If you are using 127111-01
modify /etc/system with

set maxfastscan=0x2000
set kpm_enable=0

References:
Aiowait Timed Out 1 Times Database Not Responding Cannot kill processes [ID 743425.1]
Get Oracle Certifications for all Exams
Free Online Exams.com

Potential reasons for "WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com




Problem: Potential reasons for "WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!





Solution:



Potential reasons for "WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! " ---

When Row cache contention occurs, if the enqueue cannot be obtained within a certain predetermined time period, a trace file will be generated in the user_dump_dest or background_dump_dest depending on whether a user or background process created the trace file. The alert log may be updated accordingly with the warning and the location of the trace file. This may also be accompanied by database hang or slowdown symptoms.

What is happening here is that the database is detecting that a key resource is being held for too long and is flagging this up to the administrator so that this situation can be resolved.

The trace file generated will tend to contain the words:
>>> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! <<< in it at the start. This trace can provide some useful information for diagnosing the cause of the contention. It is possible to check the row cache enqueue trace to determine which enqueue has the contention: For example: ... >>> WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! <<< row cache enqueue: session: 70000001b542d48, mode: N, request: S row cache parent object: address=700000036f27628 cid=0(dc_tablespaces) hash=a6840aa5 typ=9 transaction=0 flags=00008000 ... In this particular example, the resource being waited for is the 'dc_tablespaces' enqueue and so looking at activities that may have affected tablespaces would be prudent. Waits for other enqueues would require looking at the specific area involved. The trace will often contain a systemstate dump. Typically a session holding the row cache resource will either be on cpu or blocked by another session. If it is on cpu then errorstacks are likely to be required to diagnose, unless tuning can be done to reduce the enqueue hold time. For each enqueue type, there are a limited number of operations that require each enqueue. DC_TABLESPACES Probably the most likely cause is the allocation of new extents. If extent sizes are set low then the application may constantly be requesting new extents and causing contention. Do you have objects with small extent sizes that are rapidly growing? (You may be able to spot these by looking for objects with large numbers of extents). Check the trace for insert/update activity, check the objects inserted into for number of extents. DC_SEQUENCES Check for appropriate caching of sequences for the application requirements. Note 853652.1 RAC and Sequences Note 395314.1 RAC Hangs due to small cache size on SYS.AUDSES$ - fixed in 10.2.0.3 Note 6027068.8 Bug 6027068 - Contention on ORA_TQ_BASE sequence -fixed in 10.2.0.5 and 11.2.0.1 DC_USERS Deadlock and resulting "WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK!" can occur if a session issues a GRANT to a user, and that user is in the process of logging on to the database. Note 4604972.8 Bug 4604972 - Deadlock on dc_users by Concurrent Grant/Revoke - fixed in 11.1.0.6 Note 6143420.8 Bug 6143420 - Deadlock involving "ROW CACHE LOCK" on dc_users AND "CURSOR: PIN S WAIT ON X"- fixed in 10.2.0.5 and 11.1.0.6 DC_OBJECTS DC_OBJECT_IDS Note 11693365.8 Bug 11693365 - Concurrent Drop table and Select on Reference constraint table hangs (deadlock) - fixed in 12.1 DC_SEGMENTS This is likely to be down to segment allocation. Identify what the session holding the enqueue is doing and use errorstacks to diagnose. DB_ROLLBACK_SEGMENTS This is due to rollback segment allocation. Just like dc_segments,identify what is holding the enqueue and also generate errorstacks. Remember that on a multi-node system (RAC) the holder may be on another node and so multiple systemstates from each node will be required. DC_TABLE_SCNS Note 5756769.8 Bug 5756769 - Deadlock between Create MVIEW and DML - fixed in 10.2.0.5 ,11.1.07 and 11.2.0.1 RAC Specific Bugs Note 6004916.8 Bug 6004916 - Hang involving row cache enqueues in RAC (ORA-4021) - fixed in 102.0.5 and 11.1.0.6 Note 8666117.8 Bug 8666117 - High row cache latch contention in RAC - fixed in 11.2.0.2 and 12.1 Note 9866045.8 Bug 9866045 - Long wait on 'wait for master scn' in LCK causing long row cache lock waits - fixed in 12.1


References:



Potential reasons for "WAITED TOO LONG FOR A ROW CACHE ENQUEUE LOCK! " [ID 278316.1]
Get Oracle Certifications for all Exams
Free Online Exams.com

How to Analyze High CPU Utilization In Solaris

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: How to Analyze High CPU Utilization In Solaris









Solution:


Kernel Lock contention:
• smtx (spins on a Mutex lock, as reported by mpstat(1)),
• srw (spins on a reader/writer lock, as reported by mpstat(1))
Locks are used for protecting critical kernel data structure from simultaneous access. There is always a lock needed for shared writable area. In Solaris thread sleeps at any one of the following synchronization objects:
• Mutex: It serializes access to critical kernel data structures.
• Condition variables: Implements kernel sleep/wakeup facility.
• Semaphores: Synchronize access to a shareable resource.
• RW lock: Concurrent access to reader, Exclusive access to writer
Mutex locks are most commonly used in Solaris[TM] kernel to protect critical data structures. Smtx event indicates that a kernel thread is spinning waiting for a mutex. The thread that is holding the lock is running on some other CPU, and the thread trying to get the lock will spin on the cpu expecting that the mutex owner would release the lock soon. Smtx represents an entry point into the adaptive mutex code.
In some cases, we can distinguish between reading a piece of data and modifying a piece of data. For such cases, kernel uses reader/writer locks(rwlock). Contention on the rwlock is reported by "srw" counter. Any number of threads can hold rwlock for reading, as long as no thread holds the rwlock for writing.
There are thousands of locks in the kernel, that all get acquired through this same entry point. There's no way to know just by looking at the smtx or srw count that the count refers to an attempts to get the same lock, the same 10 locks or 100 different locks. To find out what kernel resource(s) are seeing contention, use lockstat.
To record kernel contention lock events, such as spin on adoptive mutex or block on rwlock type:
#lockstat -o lockstat.out -C -i 997 -s10 -D20 -n 1000000 sleep
It is recommended to run lockstat(1M) for a shorter interval due to overhead of logging the events of interest by modifying the running kernel.
See Document: 1005868.1: A Primer on Lockstat, and lockstat(1M) man page for detail.
High Pageing Activity:
• minf/mjf(mpstat: minor fault/major fault), mf (vmstat: minor fault)
A page fault occurs when a process attempts to access data that it currently does not have mapped. It is considered a minor fault if the data is in memory and the only thing required is the creation of a new mapping for it. A major fault occurs when the page is not in memory, and has to be created, and possibly populated with data from the backing store, then the mapping built. For example, a process maps in the "libc.so" library in its address space and makes a reference to a page within it. A page fault occurs, however the physical page may already be present in the memory, might have been brought in by some other process earlier, then the kernel only needs to establish a virtual to physical mapping without performing an expensive I/O operation.
Pages which are no longer mapped by any processes but still have a valid vnode/offset to some data are kept in a list called the cache list. If a page is needed which is in the cache list, then it can be removed from the list and remapped. This is reported by vmstat in the "re" column as reclaimed. Major page fault in conjunction with vmstat:pages-ins, described below, should be looked at when the high system time is reported.
• pi/po (vmstat: kilobytes pages-in/pages-out)
A page is brought into the memory when applications access the virtual address that is not mapped to the physical page. Each page of physical memory has an associated file (vnode) and offset. The file and offset identify the backing store for the page. Backing store is the location to which the physical page contents will be migrated out (paged out) or migrated in (paged in). Process's memory pages that are part of text or data segment use filesystem (where the program's binary resides) as a backing store. Memory pages used for process stack or heap (allocated typically by malloc) are not read from disk, but are created zero-filled. Should those need to be paged out, a swap device is used. These are also known as "anonymous" pages, as they have no identity in a filesystem.
One can find out the source of page-in/page-out using "vmstat -p". page-in and page-out activity at the file system level reported as "fpi/fpo/fpf", is a sign that application is actively doing read(),write(), mmap() operations on files residing on the file system. Anonymous memory pagin and pageout are reported as "api/apo/apf". Anonymous memory pagein/pageout activity is a sign of memory pressure since I/O to the swap device is an indication of memory shortage.
High Paging activity to/from the file system and swap (anonymous memory pages) can result in high cpu sys usage.
Signs of Memory Shortage:
• sr (vmstat: scan rate)
sr is the number of pages scanned by the scanner (page daemon) per second. On Solaris 8 and above, sr column reporting a non-zero value means shortage of memory. For Solaris 7 and below sr column alone cannot tell about memory shortages. Both sr column and IO to the swap device should be looked at to determine memory shortages on Sol7 and below.
Multiple factors can cause the memory pressure:
• Memory requirement of the workload is larger than physical memory.
• Large memory allocation in kernel due to a bug or an excessive tuning
• Application or kernel driver memory leak.
To find the source of large memory allocation in a user application, use pmap(1), ps(1) or prstat(1M) utilities. For kernel memory allocation, usekstat(1M)


# kstat -n system_pages|grep pp_kernel
pp_kernel 3345881
where pp_kernel represents number of 8k(sparc) and 4k(intel) pages allocated to kernel
You can also get a breakdown of memory usage by application, file system and
kernel by running command below:


# echo ::memstat | mdb -k
Page Summary Pages MB %Tot
------------ ---------------- ---------------- ----
Kernel 158364 1237 15%
ZFS File Data 684405 5346 67%
Anon 30341 237 3%
Exec and libs 5932 46 1%
Page cache 26912 210 3%
Free (cachelist) 34968 273 3%
Free (freelist) 88081 688 9%

Total 1029003 8039
Physical 1013090 7914

Where:
Kernel: Memory allocated by kernel and drivers
ZFS File Data: Memory allocated for caching ZFS file system blocks.
Anon: Memory allocated by application for heap, stack, COW
Exec and libs: Memory allocated by application libraries
Page cache: Memory allocated to UFS file system cache
Free (cachelist): Available memory. Memory with vnode and offset intact
Free (freelist): Available memory.

The page scanner is activated when free memory, represented by kernel variable
"freemem", drops below the "lotsfree" threshold. lotsfree is set to 1/64 of total
memory). Page scanner steels memory (in 8k page-sized chunk)from the application
and filesystem buffers that haven't been referenced recently, syncs them with
the backing store if they've been modified, then frees them for other uses.
High scan rate is a sign that page scanner daemon is running more frequently and
for a longer period and in turn effects cpu kernel time.

One can monitor memory thresholds by running:
# kstat -n system_pages

name: system_pages class: pages
availrmem 13420400
crtime 163.131762
desfree 128635
desscan 25
econtig 189792256
fastscan 677273
freemem 7151671
kernelbase 16777216
lotsfree 257271
minfree 64317
nalloc 50280640
nalloc_calls 18093
nfree 37487807
nfree_calls 12382
nscan 0
pagesfree 7151671
pageslocked 3029092
pagestotal 16465378
physmem 16487075
pp_kernel 3346379
slowscan 100
snaptime 4952283.6547535

Where values are reported in 8k(sparc) and 4k(intel) units

See Documents:
1012111.1 Solaris:Discrepancy in freemem and available swap on systems configured without physical swap
1003383.1 Page Cache on Solaris 8 consumes large amounts of memory for more detail.





Fsflush Cpu Usage:

Primary task of file system flush daemon, fsflush, is to search and flush dirty
file system pages to the backing store of the file system that the file(s) reside
in. By default, fsflush is configured to wake up every 5 seconds (in recent releases
it is changed to 1 second) and search 1/6th of physical memory for dirty pages
- thus flushing all of physical memory within 30 seconds.

On large memory systems, the fsflush daemon will consume a large amount of cpu
if there are many dirty pages in the file system page cache. In some circumstances,
the daemon will not be able to complete it's scan of 1/6th of physical memory at
each scheduled wake up.

The amount of time being spent by fsflush can be observed by taking multiple
snapshots using ps(1) to view the cpu time (TIME column) consumed by the daemon:

# ps -aef |grep fsflush
UID PID PPID C STIME TTY TIME CMD
root 3 0 0 10:14:13 ? 132:13 fsflush

The amount of time spent in fsflush can also be observed on an idle machine.
A 96GB machine with many file system pages will use 100% of a CPU for
approximately 3 seconds, each time the file system daemon wakes up:

# mpstat 5
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
0 4 0 109 201 101 15 0 0 12 0 64 0 99* 0 1
1 39 0 4 1 1 6 0 0 3 0 92 0 0 0 100
2 15 0 1473 10 10 14 0 0 1 0 21 2 0 2 95
3 21 0 1726 1 1 56 0 0 47 0 286 1 0 3 96
4 22 2 123 0 0 11 0 0 1 0 68 0 0 1 98


A larger value for the autoup parameter reduces the fsflush cpu usage at a cost
of keeping the dirty buffer in memory for longer period . If fsflush runs for a
longer period, it can effect application performance since it runs in kernel mode.
It is therefore recommended to increase the default (30 seconds) to (nGB x 4).
For example, a system configured with 96 GB should have an autoup value of 384.
Edit the /etc/system file and add the following line and reboot.
set autoup=384

High Cross-calls:
Cross-calls is an operations that must be performed on one or all cpus. Kernel
uses cross-calls for two main purposes:

• To implement interprocessor interrupts: Interprocessor interrupts are delivered by the kernel using "poke_cpu()" function and it is used for such tasks : prempting the dispatcher, delivering a signal to thread running on another cpu, or for starting/stopping threads running on different processor when /proc interface is used.
• To synchronize the memory management units (MMU) on all cpus. When a page is unmapped due to user process exiting or issuing an unmap operation a cross-call is needed to flush the TLBs (Translation Lookaside Buffer) entries for the unmapped page from all cpus MMU on which the thread last run.
• TLB is part of the memory management unit (MMU) and used for cacheing translation entries such as (PTE in case of Sparc, TTE in case of UltraSparc). The objective of the TLB is to cache as many recent page translations in hardware as possible, so that it can satisfy a process's or thread's memory access by performing all of the virtual-to-physical translation on-the-fly. If the translation is not found in the TLB, system has to look for virtual to physical memory translation from the larger table in main memory, which is several order slower.
• When a TLB entry is invalidated, all CPUs which may have a copy of that TLB must be notified to invalidate their copy. This is done via a cross-call. A cross-call is implemented with a cross-trap. Cross-calls use a special cross-trap which records the presence of a cross-call. Once the cross-trap is done, it immediately executes the cross-call. Majority of cross-call events are triggered by HAT (Hardware Address Transalation) layer flushing stale TLB entries on the other cpus. This is either due to process exiting or the piece of memory is reclaimed for other use. Kernel tracks the cpus on which a process runs so that when the process exits it can send cross-traps to only those cpus the process ran on. For kernel unmapped pages, cross-call is made to all cpus. Some number of cross-traps come from the activities of the cache-scrubber.

Trapstat(1M) utility (-t option), available in Solaris 9 and above, breaks out TLB misses by kernel and user ("k" vs. "u"); differentiates between TSB hits and TSB misses ("tlb-miss" vs."tsb-miss") and reports the amount of time spend in each type of handler (%tim) as shown below:

cpu m| itlb-miss %tim itsb-miss %tim | dtlb-miss %tim dtsb-miss %tim |%tim

0 u| 0 0.0 0 0.0 | 0 0.0 0 0.0 | 0.0
0 k| 0 0.0 0 0.0 | 31 0.0 0 0.0 | 0.0

1 u| 0 0.0 0 0.0 | 0 0.0 0 0.0 | 0.0
1 k| 0 0.0 0 0.0 | 11 0.0 0 0.0 | 0.0

2 u| 0 0.0 0 0.0 | 0 0.0 0 0.0 | 0.0
2 k| 0 0.0 0 0.0 | 0 0.0 0 0.0 | 0.0

3 u| 0 0.0 0 0.0 | 0 0.0 0 0.0 | 0.0
3 k| 0 0.0 0 0.0 | 0 0.0 0 0.0 | 0.0
It is not recommended to run "trapstat -t" during busy hours due to its high overhead (upto 7% on memory intensive workload). If interested only the summary of tlb misses on each cpu, use trapstat without any option. It has relatively lower overhead than running it with "-t" option.
MPSS (Multiple Page Size Support) introduced in Solaris[TM] 9 improves the TLB hit rate by increasing the page size cached in the hardware TLB from 8KB to 4 MB. Also, lpoob (Large Page Out Of Box) feature introduced in Solaris 10 use large pages for process heap, stack and private anonymous memory. Large pages allow better performance for some workload due to larger working set can be cache and thus avoids frequent TLB misses.

Detail on how MPSS improves application performance and how to measure TLB hits using trapstat, see: Document: 1010458.1 , Taking advantage of Multiple Page Size Support in Solaris[TM] 9 and later.

Frequency of Interrupts:
• intr/ithr (mpstat: interrupt/Interrupt as thread)
Interrupt is a mechanism used by devices such as: disk, network card etc. to signal a completion of an io or some activity. Interrupt causes cpu to stop the execution of running thread since interrupt requires immediate processing. Kernel services the interrupt by vector transfer the cpu execution to the interrupt handler routine that matches the interrupting device. High number of interrupts to a particular cpu could be caused by a bad hardware or binding several high interrupt generating device to the same processor.
"ithr" column records low level interrupts that are handled as a separate thread. Interrupts below level 10 are handled the same way as other solaris threads. In contrast, interrupts above level 10 uses (borrows) the LWP from the executing thread. The interrupted thread in that case is pinned, which avoids the overhead of context switch. Interrupts handler routines of level 10 or below (interrupts handler above 10 cannot block) can block if necessary, using regular synchronization primitives (see above). Each processor maintains a pool of partially initialized interrupt threads, one for each of the lower 9 levels plus a system wide thread for the clock interrupts. This approach allows simple, fast allocation of threads at the interrupt dispatch time, and low latency interrupt response time without impacting the scaling caused by interrupt blocking for synchronous data access.
intrstat(1M) utility available in Sol10 that report interrupt statistics. kstat(1M) can be also be used to capture interrupt statistics per cpu

level-1 288227202512057
level-10 32914470420237
level-11 0
level-12 108930
level-13 86205745317
level-14 2341214414862
level-15 0
level-2 0
level-3 0
level-4 349787125
level-5 52446672
level-6 1114480
level-7 10737622850102
level-8 0
level-9 697429014107
trapstat(1M) utility (-i option) on Solaris 9 breaks out the int-vec and level-1 through level-15 traps by interrupt number, programmable interrupt level (PIL), interrupting device, and device instance number as shown below:
# trapstat -i

inum pil device | cpu0 cpu1 cpu4 cpu5

db 5 fas#0 | 51 0 0 0
e2 5 soc#0 | 0 0 0 123
d3 5 soc#1 | 2 0 0 0
....
....
343 5 soc#17 | 0 0 0 0
dc 7 hme#0 | 125 0 0 0
1dc 7 hme#1 | 0 0 170 0
25c 7 hme#2 | 71 0 0 0
...
Number Of System calls:
System call is the only way for user application to access the kernel resources. When the user program makes a system call, such as open file, the open routine (a wrapper to open system call) pushes the system call number (which is used to identify the particular system call in the kernel) onto the user stack and then invokes a special SPARC trap instruction , Tcc, aka. Software trap. The primary function of this instruction is to change the execution mode of the processor to kernel. Kernel then invokes system call handler called syscall().
Not all system calls have same overhead. Type of system call issued by the application and time taken to service that system call can be monitored by truss(1) utility.

# truss -c ls
# truss -aefd -o truss.out -p pid_of_process
For detail about how to use truss, see
Document: 1005788.1 Using truss for program and error analysis
Document: 1011708.1 Basics of Using the truss Command
Document: 1007414.1 truss interpretation: an example
Truss reports system calls generated by the particular process. If interested in system calls generated system wide than use prex(1). prex is used for enabling and traceing TNF probes in a user process or the kernel.

# prex -k
prex> list probes syscall
name=syscall_end enable=off trace=off file=../../sparc/os/syscall.cline=853 funcs=
name=syscall_start enable=off trace=off file=../../sparc/os/syscall.cline=541 funcs=
prex> buffer alloc 2m
Buffer of size 2097152 bytes allocated
prex> enable syscall
prex> trace syscall
prex> ktrace on

Use tnfxtract(1) to dump the buffer containing syscall probes into file
Use tnfdump(1) to convert the binary file into an ascii.
File /etc/name_to_sysnum provides sysycall name to number mapping.
This information may be used for interpreting the file containing syscal TNF probes data.

Kernel Profiling:
All the system activities discussed above invoke various kernel routines to perform the task. In Solaris 8 and above lockstat(1M) utility has a kernel profile option that offers excellent tracing inside the kernel. Kernel profiling offers an insight into where in the kernel cpus are spending majority of their time or what kernel routines are monopolizing the cpus in the kernel mode. Kernel profiling lists all the active kernel routines during the sample period and the cpu time spend in running these kernel routines.

To collect kernel profile data for 30 seconds, type:

#lockstat -o lockstat_profile.out -I -i 971 -s 40 -n 720000 -W sleep 30

Instead of recording lock events lockstat collects profiling data when "I" option is specified. "-i"
option requests that the profiling is performed at 971 Hz (maximum value is 100 Hz). By default, lockstat uses 10,000 buckets for recording profiling events such as: PC, CPU, PIL. When lockstat runs out of buckets for recording
events, it prints out the message:

lockstat: warning: ran out of data records.

To validate that no events were dropped by lockstat follow the steps below:

$ head -2 lockstat.out

Profiling interrupt: 1165219 events in 600.018 seconds (1942 events/sec) versus the expected number of
events: NCPU x frequency x sample period:

$ bc -l
2*971*600.018
1165234.956

To make sure there are plenty of buckets available to do profiling of the busy workload, specify larger
value to "-n" option. A simple way to check the number of buckets actually used:

$ wc -l lockstat.out
6234 lockstat.out


For more information, see lockstat man page and
Document: 1001812.1 - How to determine what is consuming CPU system time
using the lockstat command.
Prstat:
When it comes to performance, what matters most is how the application is getting impacted by the activities described above. Prstat(1M) utility has an option to collect microstate process accounting that provides information similar to what is reported by mpstat and vmstat. However, instead of reporting system wide information, prstat "-m" option reports process specific events such as:
SYS The percentage of time the process has spent in system mode.
DFL The percentage of time the process has spent processing data page faults. It is a sign that memory shortage is effecting application performance.
LCK The percentage of time the process has spent waiting for user locks. This is a sign of resource contention in user code.
SLP The percentage of time the process has spent sleeping.
LAT The percentage of time the process has spent waiting for the CPU. It means there are too many runnable threads in the cpu dispatch queue competing for the cpu resources.
VCX The number of voluntary context switches.
ICX The number of involuntary context switches. It means thread is getting preempted due to high priority runnable thread or has exhausted its time slot.
SCL The number of system calls
To discuss this information further with Oracle experts and industry peers, we encourage you to review,
join or start a discussion in the My Oracle Support Community, Oracle Solaris Kernel Community.



References:


How to Analyze High CPU Utilization In Solaris [ID 1008930.1]
Get Oracle Certifications for all Exams
Free Online Exams.com

How to suppress the error code from being displayed to the user, including error codes generated from Workflow Process, DVM and Scripting etc.

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: How to suppress the error code from being displayed to the user, including error codes generated from Workflow Process, DVM and Scripting etc.






Solution:



How to suppress error messages error codes from being displayed to end users:
1. Scripting: to suppress scripting error codes by setting system preference 'Suppress Scripting Error Code' = True.
2.workflow.
Errors showing up are essential to note something is not working as expected, and in case of meaningful error messages to determine what went wrong, if they don't show up and something does not work it is hardly possible to note that and what is going wrong.

Is it possible and if yes how to suppress Error Codes in Error Messages?
Currently error messages are displayed as:
"SBL-BPR-1234 You did something wrong!"

and it should look like:
"You did something wrong!"
Enhancement Request CR 10603270 "Option to customize error message appearance across the application" has been opened to ask for such.
Document 1260685.1 Suppress Error Code In Siebel across the Application
BUG:10603270 - OPTION TO CUSTOMIZE ERROR MESSAGE APPEARANCE ACROSS THE APPLICATION
References:
Document 1260685.1 Suppress Error Code In Siebel across the Application
Get Oracle Certifications for all Exams
Free Online Exams.com

ORA-27300: OS system dependent operation:invalid_process_id failed with status: 0, ORA-27301, ORA-27302: failure occurred at: skgpalive1

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: ORA-27300: OS system dependent operation:invalid_process_id failed with status: 0, ORA-27301, ORA-27302: failure occurred at: skgpalive1







Symptoms:

Applied 10.2.0.5 patch set.

Log files:

Database alert_.log shows following error and keeps running:

Errors in file /u04/admin/njord/udump/njord_ora_25895.trc:
ORA-27300: OS system dependent operation:invalid_process_id failed with status: 0
ORA-27301: OS failure message: Error 0
ORA-27302: failure occurred at: skgpalive1




Solution:



bug 10010310 is fixed in 11.2.0.3, 12.1 and above.

Please check patch 10010310 for existing interim patches.

References:
Get Oracle Certifications for all Exams
Free Online Exams.com

Gateway server is not starting after running the command start_ns, its getting hanged: Siebel Server not starting properly with NFS

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: Gateway server is not starting after running the command start_ns, its getting hanged: Siebel Server not starting properly with NFS




Log files:
The truss output shows that the start_ns fails while trying to read the svc file:

3811: stat64("/siebelGW/app/gtwysrvr/sys", 0xffffe1c0) = 0
3811: stat64("/siebelGW/app/gtwysrvr/sys/svc.gtwyns..bak", 0xffffe690) = 0
3811: stat64("/siebelGW/app/gtwysrvr/sys/svc.gtwyns.", 0xffffe690) = 0
3811: stat64("/siebelGW/app/gtwysrvr/sys/svc.gtwyns.", 0xffffe910) = 0
3811: open("/siebelGW/app/gtwysrvr/sys/svc.gtwyns.", O_RDWR|0x800, 0) = 4
3811: lockf64(4, F_LOCK, 0) [sleeping]

below error with Gateway Issue:

Login failed for Login name : hiwebuser
ProcessPluginState ProcessPluginStateError 1 000007384cc94ca2:0 2010-10-28 14:01:15 7: [SWSE] Open Session failed (0xa600d1) after 60.0436 seconds.
ProcessPluginRequest ProcessPluginRequestError 1 000007384cc94ca2:0 2010-10-28 14:01:15 7: [SWSE] New anon session open failed.
ProcessPluginRequest ProcessPluginRequestError 1 000007384cc94ca2:0 2010-10-28 14:01:15 7: [SWSE] Could not get an anon session...PROBLEM
ProcessPluginRequest ProcessPluginRequestError 1 000007384cc94ca2:0 2010-10-28 14:01:15 7: [SWSE] Failed to obtain a session ID. Login failed attempting to connect to %1
ProcessPluginRequest ProcessPluginRequestError 1 000007384cc94ca2:0 2010-10-28 14:01:15 7: [SWSE] Set Error Response (Session: Error: 10879185 Message: Login failed attempting to connect to %1)
SisnTcpIp SisnSockError 1 000007064c9257a8:0 2010-10-28 14:01:32 47: [TCPIP-client] recv() failed for sd=-1 (err=9 | Bad file number)
SisnapiLayerLog Error 1 000007064c9257a8:0 2010-10-28 14:01:32 47: [SISNAPI] Async Thread: connection (0x41670740), error (1180852) while reading message
SisnTcpIp SisnSockError 1 000009144cba6503:0 2010-10-28 14:01:43 49: [TCPIP-client] recv() failed for sd=-1 (err=9 | Bad file number)
SisnapiLayerLog Error 1 000009144cba6503:0 2010-10-28 14:01:43 49: [SISNAPI] Async Thread: connection (0x41445fd0), error (1180852) while reading message
GenericLog GenericError 1 000007934cc94ca2:0 2010-10-28 14:02:54 (ssmsismgr.cpp (0) err=0 sys=1869345760) SBL-GEN-00000: (ssmsismgr.cpp: 0)


Solution:



Restarting enterprise including NFS server would resolve the behavior
The issue with the Gateway Server restart is because of the NFS server. It is not common to have the Gateway not installed locally. This can lead to such issues.
Hence I would consider moving to Gateway to your local disk.
Get Oracle Certifications for all Exams
Free Online Exams.com

TNS-12599: TNS:cryptographic checksum mismatch

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: TNS-12599: TNS:cryptographic checksum mismatch







Log files:
Alert log file

NI cryptographic checksum mismatch error: 12599.

VERSION INFORMATION:
TNS for 32-bit Windows: Version 11.2.0.2.0 - Production
Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 11.2.0.2.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 11.2.0.2.0 - Production
Time: 02-AUG-2011 10:43:58
Tracing not turned on.
Tns error struct:
ns main err code: 12599

TNS-12599: TNS:cryptographic checksum mismatch
ns secondary err code: 2526
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0


Solution:



The Enterprise Manager OMS connects to the 11.2 database using 10.2 JDBC Thin connection and AES256 encryption algorithm.

The 11.2 DB does not support client JDBC connections using AES encryption, hence the
TNS-12599: TNS:cryptographic checksum mismatch

Workaround:

on the the database side, set SQLNET.ENCRYPTION_TYPES_SERVER= (3DES168) and SQLNET.ENCRYPTION_SERVER=REQUIRED in sqlnet.ora

Bug 9953045 fixed this problem.

References:



BUG:9844654 - GC 11G REPOSITORY DB ALERT.LOG SHOWS TNS-12599
Get Oracle Certifications for all Exams
Free Online Exams.com

ORA-20001: The approval group XXHR_EIT_APPROVER_GROUP had no members, and the ALLOW_EMPTY_APPROVAL_GROUPS attribute has the value 'false'.

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: ORA-20001: The approval group XXHR_EIT_APPROVER_GROUP had no members, and the ALLOW_EMPTY_APPROVAL_GROUPS attribute has the value 'false'.

Set Allow Empty Approval group to False, create an approval group and ensure that the same is null, on the review page system errors out and shows AME_400229_HAN_APR_NO_MEM message , however you can still submit the transaction, which then errors out and send notification to SYSADMIN for resolution and all this time till the resolution is done, the transaction is shown pending.

System should not allow the transaction to be submitted in its first place.





Symptoms:

Set Allow Empty Approval group to False, create an approval group and ensure that the same is null, on the review page system errors out and shows AME_400229_HAN_APR_NO_MEM message, however you can still submit the transaction, which then errors out and send notification to SYSADMIN for resolution and all this time till the resolution is done, the transaction is shown pending.

SSHR transaction errors out with the message and show that there are no approvers in the list, and yet if the transaction is submitted, it goes into a state of error and sends a notification to SYSADMIN for resolution. System should not allow the users to submit the transaction.

Log files:

**** Errored Activities

Activity RESULT Error Name
--------------------------------------------- --------------- ------------------------------
Error Message
------------------------------------------------------------------------------------------------------------------------------------
Error Stack
------------------------------------------------------------------------------------------------------------------------------------
HR_IS_FINAL_APPROVER_FCT #EXCEPTION -20001
ORA-20001: The approval group XXHR_EIT_APPROVER_GROUP had no members, and the ALLOW_EMPTY_APPROVAL_GROUPS attribute has the value 'false'.

AME_AG_CHAIN_HANDLER.getFirstApprover(127123)
AME_ENGINE.processActionType(127124)
AME_ENGINE.processRules(127125)
AME_ENGINE.updateTransactionState(127126)
AME_ENGINE.getNextApprovers(127127)
AME_API2.getNextApprovers4(127128)
Wf_Engine_Util.Function_Call(hr_approval_ss.isfinalapprover, HRSSA, 28045, 183045, RUN)


*** Error Process Activity Statuses

Begin Date Activity Status RESULT User NID Status
------------------ --------------------------------------------- -------- --------------- ------------ -------- --------
22-SEP-10 13:42:43 ROOT/HR_STANDARD_ERROR_PRC COMPLETE ERROR
22-SEP-10 13:42:43 HR_STANDARD_ERROR_PRC/START COMPLETE #NULL
22-SEP-10 13:42:43 HR_STANDARD_ERROR_PRC/HR_SYSTEM_ERROR_NTF COMPLETE #NULL SYSADMIN 5593637 OPEN
22-SEP-10 13:42:44 HR_STANDARD_ERROR_PRC/END-3 COMPLETE #NULL

*** Error Process Activity Statuses History


Solution:


What you see is the intended behavior of the system.
When users see an error on the review page, they need to report the error to the system administrator to get the error fixed.
The system does not disable the submit button in any case.
If users go ahead and submit the transaction, the transaction will error out and willbe pending till the error is fixed.
Once the error is fixed, you can either retry the same transaction as the workflow administrator or purge and redo the transaction.
Please set user expectation accordingly.

Enhancement Request ER 6530831 - SUBMIT BUTTON SHOULD NOT BE ACTIVE FOR TRANSACTION WHEN SYSTEM ERRORS has been created

This is the usage of ALLOW_EMPTY_APPROVAL_GROUPS attribute.

Attribute Purpose:
The ALLOW_EMPTY_APPROVAL_GROUPS attribute takes a Boolean value of either True or False, to control if existing Approval Groups are allowed to have no assigned members at run time.

Settings Result - FALSE:
Setting the value as FALSE results in AME raising an Exception message if there are no member assignments at point of run-time. The most common occurrence of such a situation is when the Approval Group is generated dynamically with an SQL criteria used to retrieve members, which returns no rows.

Settings Results - TRUE:
Setting the value as TRUE results in AME allowing an Approval Group to then have no members at run-time without an exception raised.

Action Types:
There are three predefined action types (types listed below) that use approval groups, one for each sub-list in an item's Approver List. All three Approval Group Action Types REQUIRE that the attribute ALLOW_EMPTY_APPROVAL_GROUPS be set to either TRUE or FALSE. This attribute can not be left NULL for any of the following Action Types:

• Approver-Group Chain of Authority
(Treats the Approval Group as a Chain of Authority)

• Pre-Chain of Authority
(Inserts approver groups before the authority sub-list of an item's approver list.)

• Post-Chain Authority
(Inserts approver groups after the authority sub-list of an item's approver list.)

Navigation Path:
• Select "Approvals Management Application Administrator"
• Select "Approvals"
• Select "Purchase Requisition Approval Transaction Attributes"
• Select Header Level Attribute "ALLOW_EMPTY_APPROVAL_GROUPS"
• Set to either True or False
• Select "Save"

Please refer to MyOracleSupport
Note: 368280.1 - How Can The Version Of AME Be Determined?
Support needs a solid background on your AME patching level.
If your installation is patched to AME.B or higher, Please Review the document attached to
Note.434567.1 - Approvals Management Responsibilities and Setups in AME.B
Please run the AME Setup Report.
MyOracleSupport Note: 287255.1 - Approvals Management Reporting Utility Support
Tool
Download the most recent version of the script from the note and upload the
results to this Service Request (SR).
Upload the Exception Log.
* Post AME.B: this is an option in the UI
Pre-AME.B:
run the following script:

SELECT max(log_id)
FROM ame_exceptions_log;
Make note of the Log Id returned.
Recreate the issue
Run the following script:
SELECT *
FROM ame_exceptions_log
WHERE log_id max log_id recorded previously
ORDER BY log_id desc;

References:
Enhancement Request ER 6530831 - SUBMIT BUTTON SHOULD NOT BE ACTIVE FOR TRANSACTION WHEN SYSTEM ERRORS.
Get Oracle Certifications for all Exams
Free Online Exams.com

ORA-20001: Unabled to call fnd_ldap_wrapper.update_user, ORA-06512: at "APPS.APP_EXCEPTION"

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: ORA-20001: Unabled to call fnd_ldap_wrapper.update_user, ORA-06512: at "APPS.APP_EXCEPTION"





Symptoms:
Failed to update password. Oracle error 20001: java.sql.SQLException: ORA-20001: Unabled to call fnd_ldap_wrapper.update_user due to the following reason:
ORA-20001: Unabled to call fnd_ldap_wrapper.update_user due to the following reason: An unexpected error occured.Please contact System Administrator.. ORA-
06512: at "APPS.APP_EXCEPTION", line 72 ORA-06512: at "APPS.FND_USER_PKG", line 3955 ORA-06512: at "APPS.FND_USER_PKG", line 3981 ORA-06512: at
"APPS.FND_WEB_SEC", line 1351 ORA-06512: at "APPS.FND_WEB_SEC", line 1379 ORA-06512: at "APPS.FND_WEB_SEC", line 1460 ORA-06512: at "APPS.FND_WEB_SEC",
line 1250 ORA-06512: at line 1 has been detected in SessionManager.changePassword(String, String, String, String, Connection).

Log files:
debug.log
[Jul 20, 2010 6:52:41 AM EDT]:1279623161188:Thread[Thread-140,10,main]:6:730315229:jebuap02.dubaiworld.ae:172.30.112.12:8140:16400:ERROR:[fnd.common.ErrorStack]:java.sql.SQLException: ORA-20001: Unabled to call fnd_ldap_wrapper.update_user due to the following reason:
ORA-20001: Unabled to call fnd_ldap_wrapper.update_user due to the following reason:
An unexpected error occured. Please contact System Administrator..
ORA-06512: at "APPS.APP_EXCEPTION", line 72
ORA-06512: at "APPS.FND_USER_PKG", line 3955
ORA-06512: at "APPS.FND_USER_PKG", line 3981
ORA-06512: at "APPS.FND_WEB_SEC", line 1351
ORA-06512: at "APPS.FND_WEB_SEC", line 1379
ORA-06512: at "APPS.FND_WEB_SEC", line 1460
ORA-06512: at "APPS.FND_WEB_SEC", line 1250
ORA-06512: at line 1

at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:590)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2191)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:2064)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2989)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:658)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:736)
at oracle.apps.fnd.security.SessionManager.changePassword(SessionManager.java:2616)
at oracle.apps.fnd.security.SessionManager.changePassword(SessionManager.java:4199)
at oracle.apps.fnd.sso.SessionMgr.changePassword(SessionMgr.java:294)
at oracle.apps.fnd.sso.SSOAccessEnabler.changePassword(SSOAccessEnabler.java:69)
at _oa__html._AppsChangePassword._jspService(_AppsChangePassword.java:472)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java:294)
at java.lang.Thread.run(Thread.java:595)

[Jul 20, 2010 6:52:41 AM EDT]:1279623161201:Thread[Thread-140,10,main]:6:730315229:jebuap02.dubaiworld.ae:172.30.112.12:8140:16400:STATEMENT:[fnd.sso.html.AppsChangePassword.jsp[$Revision: 115.42 $]]:password change failed Oracle error 20001: java.sql.SQLException: ORA-20001: Unabled to call fnd_ldap_wrapper.update_user due to the following reason:
ORA-20001: Unabled to call fnd_ldap_wrapper.update_user due to the following reason:
An unexpected error occured. Please contact System Administrator..
ORA-06512: at "APPS.APP_EXCEPTION", line 72
ORA-06512: at "APPS.FND_USER_PKG", line 3955
ORA-06512: at "APPS.FND_USER_PKG", line 3981
ORA-06512: at "APPS.FND_WEB_SEC", line 1351
ORA-06512: at "APPS.FND_WEB_SEC", line 1379
ORA-06512: at "APPS.FND_WEB_SEC", line 1460
ORA-06512: at "APPS.FND_WEB_SEC", line 1250
ORA-06512: at line 1
has been detected in SessionManager.changePassword(String, String, String, String, Connection).


Solution:



1. Please set the profile "Application SSO Change Password URL"/APPS_SSO_CHANGE_PWD_URL to oiddas change password page:
e.g.
http://.:/oiddas/ui/oracle/ldap/das/mypage/ChgPwdMyPage

2. Bounce apache

3. Retest

Run the following diagnostic tests to figure out the issue
1) Login to the E-Business Suite locally as sysadmin:
http://server:port/OA_HTML/AppsLocalLogin.jsp
2) Select responsibility "CRM HTML Administration" from the Navigator's left pane
3) Select function "Diagnostics" from the Navigator's right pane. This will launch a new window (make sure you've turned off any pop up blockers)
4) Click on the "Basic" tab
5) Choose "Application Object Library" from the Applications drop down
6) Click on "SSO Setup Tests" - Click on "Run Without Pre-Requisite"
7) Click on the "Report" icon for each test and verify the results
8) Repeat the same steps for the "OID Setup"
9) Click on the "Advanced" tab
10) Click on "SSO Setup Tests" > "E-Business account SSO Information"
11) Type any user name for which you want information and then click "Run Test"
Get Oracle Certifications for all Exams
Free Online Exams.com

How to reduce number of archive log files generated by refreshing Materialized views

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: How to reduce number of archive log files generated by refreshing Materialized views







Solution:



1. alter MV to nologging
ALTER MATERIALIZED VIEW NAME NOLOGGING;

2. alter index on it
alter index name rebuild nologging;

3. set nocompress
ALTER MATERIALIZED VIEW Name NOCOMPRESS;

4. Set ATOMIC_REFRESH=>FALSE
exec DBMS_MVIEW.REFRESH('DOTTK_ADM.CHS_REPLICA1_MV','C',ATOMIC_REFRESH=>FALSE);
Get Oracle Certifications for all Exams
Free Online Exams.com

Materialized View Refresh in 10g generates a massive number of redo log files

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: Materialized View Refresh in 10g generates a massive number of redo log files






Symptoms:
I use a MV to enforce declarative integrity, but I ran into the increasing logging problem (@18 MB per transaction). Archive log sizes for a day increased to @5 GB
from @0.7 GB.
Metalink Note 365157.1 says that in 10g, a complete refresh will do a delete instead of a truncate and that this is expected behavior. To force the refresh to do a truncate instead of a delete, the ATOMIC_REFRESH parameter needs to be set to FALSE.
I converted the MV from REFRESH ON COMMIT to REFRESH ON DEMAND and set the ATOMIC_REFRESH to FALSE in the DBMS_MVIEW.REFRESH procedure. This brought down the logging to almost negligible levels, but it commits data to the base table before the check constraint on the MV fires.








Solution:



Change in behavior of complete refresh between 9i and 10g.

9i: TRUNCATE->INSERT direct path [INSERT /*+ APPEND */]
10g: DELETE->standard INSERT [INSERT /*+ BYPASS_RECURSIVE_CHECK */

The side-effects: performance deterioration, excessive redo log information being generated even for NOLOGGING MVs, data blocks not being compressed etc..


There is a way to revert to 9i logic of complete MV refresh.

Option
ATOMIC_REFRESH=>false drives the refresh to run in TRUNCATE->direct path INSERT [INSERT /*+
BYPASS_RECURSIVE_CHECK APPEND SKIP_UNQ_UNUSABLE_IDX */].


It currently says:

= atomic_refresh =
“If this parameter is set to true, then the list of materialized views is refreshed in a single transaction. All of the refreshed materialized views are updated to a single point in time. If the
Refresh fails for any of the materialized views, none of the materialized views are updated.
If this parameter is set to false, then each of the materialized views is refreshed in a separate transaction.”


BTW - Once we observed pitiful performance of complte MV refresh on 10g, we reverted to "manual,roll-your-own" refresh based on TRUNCATE->INSERT direct path->CREATE MV on prebuilt table. We can
outperform the complete refresh in both ATOMIC_REFRESH=>TRUE and FALSE. The reason for this is that complex MV refresh (the actual INSERT) gets rewritten in rather unfortunate way (using number of
virtual subqueries like "from$_subquery$_005"..). I am not going to insert the whole trace but it is worth to trace your MV complete refresh to see what is going on.









exec DBMS_MVIEW.REFRESH('owner.Name_MV','C',ATOMIC_REFRESH=>FALSE);




References:
Get Oracle Certifications for all Exams
Free Online Exams.com

Forms INVISDRI.fmb, INVIDITM.fmb and INVIVCSU.fmb were throwing compilation errors related to 'RELATED_ITEMS' package

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: Forms INVISDRI.fmb, INVIDITM.fmb and INVIVCSU.fmb were
throwing compilation errors related to 'RELATED_ITEMS' package.

On: 11.5.10.2 version, Install & Upgrade Issues

5739724. When applying this patch, following error is encountered: -
The following Oracle Forms objects did not generate successfully:
au resource QLTTXN.pll
inv forms/US INVIDITM.fmx
inv forms/US INVIVCSU.fmx





Symptoms:

For 11i extended support, we need to apply patch 9466436. Pre-req for this is 5739724. When applying this patch, following error is encountered: -
The following Oracle Forms objects did not generate successfully:
au resource QLTTXN.pll
inv forms/US INVIDITM.fmx
inv forms/US INVIVCSU.fmx

Log files:

adwork002.log
===================


Compiling WHEN-CHECKBOX-CHANGED trigger on ALL_CUSTOMERS_FLAG item in RELATED_ITEMS_PLN_INFO data block...
Compilation error on WHEN-CHECKBOX-CHANGED trigger on ALL_CUSTOMERS_FLAG item in RELATED_ITEMS_PLN_INFO data block:
PL/SQL ERROR 302 at line 1, column 15
component 'CHECK_CUST_REFERENCES' must be declared
PL/SQL ERROR 0 at line 1, column 1
Statement ignored
------------------------------------
Compiling KEY-DELREC trigger on RELATED_ITEMS data block...
Compilation error on KEY-DELREC trigger on RELATED_ITEMS data block:
PL/SQL ERROR 302 at line 1, column 15
component 'KEY_DELREC' must be declared
PL/SQL ERROR 0 at line 1, column 1
Statement ignored

-----------------------------------
Generating Oracle Forms files...

Temporarily resetting FORMS60_PATH to:
"/u02/dwcs/dwcsappl/au/11.5.0/resource:/u02/dwcs/dwcsappl/au/11.5.0/forms/US:/u02/dwcs/dwcsappl/au/11.5.0/resource/US"

Generating library "resource/ARXPLCOM.plx" with command:

/u02/dwcs/dwcsora/8.0.6/bin/f60gen module=/u02/dwcs/dwcsappl/au/11.5.0/resource/ARXPLCOM.pll userid=APPS/***** output_file=/u02/dwcs/dwcsappl/au/11.5.0/resource/ARXPLCOM.plx module_type=library batch=yes compile_all=special


ERROR generating library "resource/ARXPLCOM.plx" from input file
/u02/dwcs/dwcsappl/au/11.5.0/resource/ARXPLCOM.pll

Results of library generation:
(from file /u02/dwcs/dwcsappl/au/11.5.0/resource/ARXPLCOM.err
AD Worker has deleted the original .err file)
-------------------------------------------------------------------------
Compilation errors on AR_COMMON_INIT_PROFILES:
PL/SQL ERROR 302 at line 117, column 25
component 'VALUE' must be declared
PL/SQL ERROR 0 at line 117, column 8
Statement ignored
PL/SQL ERROR 302 at line 120, column 25
component 'VALUE' must be declared
PL/SQL ERROR 0 at line 120, column 8
Statement ignored
PL/SQL ERROR 302 at line 123, column 25
component 'VALUE' must be declared
PL/SQL ERROR 0 at line 123, column 8
Statement ignored

Failed to generate library.

FRM-30312: Failed to compile the library.

Solution:



Bug 10263460 - CANNOT COMPILE INVIDITM OR INVIVCSU AFTER APPLYING PATCH 9153710
Apply Patch 10263460

1. Download and review the readme and pre-requisites for Patch.10263460 which will resolve the
compilation issue of the Items forms.

2. Ensure that you have taken a backup of your system before applying
the recommended patch.

3. Apply the patch in a test environment.

4. Confirm the following file versions:

You can use the commands like the following:
$INV_TOP/forms/US/INVISDRI.fmb ver 115.31.115100.4
$INV_TOP/resource/INVISDRI.pld ver 115.25.115100.2

5. Retest the issue.

6. Migrate the solution as appropriate to other environments.
STATUS
Get Oracle Certifications for all Exams
Free Online Exams.com

'Diagnostics: Apps Check' concurrent program

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: 'Diagnostics: Apps Check' concurrent program


Solution:



'Diagnostics: Apps Check' concurrent program:

Steps to submit the concurrent program using an Order Management
responsibility:
- Navigation: Reports, Requests > Run Requests
- Submit a Single Request
- Name: Diagnostics: Apps Check
- Parameters:
Application 1: Inventory
Application 2: Order Management
Application 3: Shipping
Application 4: Warehouse Management
- Submit the request



References:

Metalink note:
Note 156860.1 Order Management Suite Diagnostic Tool (omcheck.sql)
(Another note about the appscheck is Note 276207.1.)
Get Oracle Certifications for all Exams
Free Online Exams.com

Response to Email Notification delivered via WF Mailer takes awful time to register in Database, ERROR:[SVC-GSM-WFMLRSVC-16864-10006

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: Response to Email Notification delivered via WF Mailer takes awful time to register in Database, ERROR:[SVC-GSM-WFMLRSVC-16864-10006 : oracle.apps.fnd.wf.mailer.SMTPMessageHandler.sendMessages(String)]:MessagingException -> javax.mail.MessagingException: 451 Timeout waiting for client input






Log files:
[Oct 31, 2010 10:53:29 AM GMT+04:00]:1288508009967:Thread[outboundThreadGroup1,5,outboundThreadGroup]:0:-1:host:172.29.16.23:-1:-1:ERROR:[SVC-GSM-WFMLRSVC-16864-10006 : oracle.apps.fnd.wf.mailer.SMTPMessageHandler.sendMessages(String)]:MessagingException -> javax.mail.MessagingException: 451 Timeout waiting for client input

PROCESSOR_READ_TIMEOUT_CLOSE N
4334965 27-NOV-07 27-NOV-07 60 11.5.10 Consolidated Update (RUP3) for ATG Product Family


Solution:



make sure that "Processor Close on Read Timeout" and "Expunge Inbox on Close" parameter is checked (In OAM --> Navigate to Workflow Manager --> Notification Mailers --> Edit --> Advanced --> Step 2)

After you run these changes, please bounce the Mailer and let me know your feedback.
Get Oracle Certifications for all Exams
Free Online Exams.com

Apps upgrade to R12 and Platform migration to Linux in one go

Visit the Below Website to access unlimited exam questions for all IT vendors and Get Oracle Certifications for FREE
http://www.free-online-exams.com

Problem: Apps upgrade to R12 and Platform migration to Linux in one go



Symptoms:
We are currently using EBS 11.5.10.2 RUP7 with 11G R2 database in a split configuration i.e. Database is on one node (HP-UX Itanium), APPS and concurrent manager on another node (HP-UX PA-RISC). Now we are planning migrate the apps tier to Linux and upgrade to R12 using the following highlevel approach.


1. Since the Database is already in latest release and no plans to migrate to new hardware, we will not perform any DB upgrade and platform migration activities for database
2. Perform R12 pre-requisites and pre-upgrade activities like

Apply 11i.AD.I minipack
Run the Upgrade Manual Scripts (TUMS) utility
Apply pre-requisite patches, if any
Gather schema statistics for CBO

3. Install the R12 Apps on the target system using rapidwiz without upgrading the source 11.5.10 on PA-RISC
4. Perform upgrade
5. Finish the upgrade
6. Post-upgrade tasks

The same approach is published by HP for "Oracle E-Business Suite Release 12 upgrade and platform migration guide: HP 9000 to HP Integrity" and "Oracle E-Business Suite Release 12 upgrade and platform migration guide: Tru64 UNIX to HP-UX Integrity"

http://h20195.www2.hp.com/v2/GetPDF.aspx/4AA2-0266ENW.pdf


I would like to know the above approach (APPS Upgrade and Platform Migration in One go ) is certified and supported for PA-RISC to Linux migration?





Solution:


You don't need to perform the Release 12 upgrade on the current server, then migrate to LINUX. You can directly lay down the file system on the LINUX machine, then continue with the upgrade steps as per the upgrade manual.

Also, please ensure your target box meets all the requirements as per:

Article-ID: Note 761564.1
Title: Oracle Applications Installation and Upgrade Notes Release
12 (12.1.1) for Linux x86

or (if the target is on 64-bits):

Article-ID: Note 761566.1
Title: Oracle E-Business Suite Installation and Upgrade Notes
Release 12 (12.1.1) for Linux x86-64

When running rapidwiz for the first time, please ensure you specify your current database details. For more information, please visit:

Oracle® Applications
Upgrade Guide
Release 11i to 12.1.1
Part No. E14010-01


References:
Get Oracle Certifications for all Exams
Free Online Exams.com