Blog dedicated to Oracle Applications (E-Business Suite) Technology; covers Apps Architecture, Administration and third party bolt-ons to Apps
Tuesday, July 31, 2007
Unreleased ATG_PF.H RUP6 patch number is 5903765
When passwords are reset by administrators, expires, or when a new user is created, the next time a user logs into Oracle Applications, they are taken to a password reset screen when logging in - AppsChangePassword.jsp. After changing the password, the user is then brought into the applications home page. The user is then free to utilize the application.
However, in this scenario of a password reset, when a user is forced through the reset password screen, the application is NOT capturing this information in the fnd_logins table.
Cause
This issue is documented in Bug 5985964.
Updated FND_SIGNON package to correctly detect sign-on auditing settings when password is changed.
Fixed Version: AFSCSGNB.pls 115.41
Monday, July 30, 2007
Why is it called Apps and not Oracle ERP ?
http://getappstraining.blogspot.com/2006/10/why-call-it-apps-and-not-oracle-erp.html
I am pasting the main content from Anil's site. But do visit it to go through all the comments posted by readers
Why call it Apps and not Oracle ERP ?
Ever wondered why is Oracle’s eBusiness Suite nicknamed apps?
Is it just the short name of Oracle Applications? Possibly yes, however this question is an excuse for me to explain to you the evolution of APPS schema.
I started working in Oracle Financials 9 years ago. Those days each module had its own database schema(which we still have). However, a purchasing user (until version 10.6) used to connect to PO schema (by the virtue of the screen being a PO screen).
Hence, if a report or screen of AR ( Oracle Receivables ) module wanted to access a table named PO_HEADERS_ALL, they would then use notation PO.PO_HEADERS_ALL
However, now we have several database schemas(in most cases one schema per module).
The tables are still owned by their respective schema, but now we have a central schema named APPS. Oracle ERP simply connects to APPS database schema for all its operations(with a couple of exceptions that are best ignored for now).
Hence, if Oracle wants to create anew table named PO_HEADERS_ALL, they will do the following
Step 1. Connect to po/po@XX_DEVDB
Create table PO_HEADERS_ALL ( ...all columns here )
Step2. Grant all on po_headers_all to apps ;
Step 3. connect to apps/apps@XX_DEVDB
Create or replace synonym PO_HEADERS_ALL for PO.PO_HEADERS_ALL
By following the above steps, as you can see, APPS schema is able to access PO_HEADERS_ALL without the notation po.po_headers_all
In Oracle ERP, now we have 100s of schemas, example po, ar, ap, gl etc.
But the screens, reports, workflows etc in Oracle Applications connect to APPS schema only. Just like saying, ALL ROADS LEAD TO ROME. Here, all schema lead to APPS.
Hence if you have a pseudo report that joins ap_invoices_all table( in AP schema) to PO_HEADERS_ALL table( in AP schema), you will simply need to do the below once connected to APPS.
Selelct 'x’ from po_headers_all p, ap_invoices_all a where a.po_Id = p.po_Id
Note, prior to version 10.6(of Oracle ERP –not database version), one had to do
Selelct 'x’ from PO.po_headers_all p, AP.ap_invoices_all a where a.po_Id = p.po_Id
Note: To keep matters simple, I haven’t considered org_Id in this example.
Org_Id will be covered in one of the following chapters ( have a look at index).
Moral of the Story is:-
All the pl/sql packages will be created in APPS Schema
All the views will be created in APPS Schema
For each table in individual schema, there will exist one synonym in APPS schema
Tables are not created in APPS schema.
Every implementation has at least 1 custom schema, where custom tables are created.
For each custom table created by you, you will need to create a Synonym in APPS schema
As a developer, you will either connect to APPS Schema or to the custom schema where you will create new tables.
Some notes:-
Custom tables are generally required in Oracle ERP because:-
1. You wish to create a custom screens ( your own screen to capture some info) for a functionality that is not delivered by Oracle
2. Pre-Interface tables ( Interface will certainly be discussed in one of the latter chapters)
3. Temp processing
4. Staging of data for third party extract interfaces….and much more
Metalink Customer Knowledge Exchange
Refer to Metalink Note 375443.1 for details about this program.
Currently there are 3 major forums:
Database / Server
EBS / Applications
Fusion
Do go through the papers submitted by customers to learn what they learnt. You could also submit your own paper which will be published as a Metalink Note, if it is accepted by Oracle.
Friday, July 27, 2007
Oracle Database 11g new features
Glimpses of the new features
Rapid Application Testing
SQL Performance Analyzer
Online Application Upgrade
Online Patching of one-off patches
Faster Performance
Result Cache
Automatic Memory Management - MEMORY_TARGET
Invisible Index
The Virtual Column
Automatic SQL tuning
SQL Access Advisor
DDL_LOCK_TIMEOUT
Sequences in PL/SQL
Enhanced SQL - PIVOT keyword
Read Only tables
Automatic Diagnostic Repository
Fast Files
Total Recall
Data Compression
Multimedia & Spatial Enhancements
RMAN enhancements.
In future posts, I'll cover these topics in detail.
Tuesday, July 24, 2007
ORA-01722: invalid number when you SELECT on WF_ITEM_ATTRIBUTE_VALUES
where item_type='HXCEMP' and item_key=120
SQL> /
ROWNUM
----------
1
2
3
4
5
6
7
8
9
10
11
ROWNUM
----------
12
13
14
15
16
17
18
19
20
21
22
ROWNUM
----------
23
24
25
26
27
28
29
30
31
32
33
ROWNUM
----------
34
35
36
37
38
39
40
41
42
43
44
ROWNUM
----------
45
ERROR:
ORA-01722: invalid number
SQL> select count(*) from wf_item_attribute_values;
COUNT(*)
----------
53014588
Metalink note 179260.1 says:
The column WF.ITEM_KEY can not be alphanumeric for upgraded order lines. It
stores the to_char(line_id) into it. ONT00065.sql should never for fail for
any records with ITEM_TYPE = 'OEOL'. Alphanumeric records will cause upgrade
errors.
However we dont have OEOL item type.
SQL> select name, number_value
2 from wf_item_attribute_values
3 where item_key=120;
NAME NUMBER_VALUE
------------------------------ ------------
ERROR_ACTIVITY_ID
ERROR_ACTIVITY_LABEL
ERROR_ASSIGNED_USER
ERROR_ITEM_KEY
ERROR_ITEM_TYPE
ERROR_MESSAGE
ERROR_MONITOR_URL
ERROR_NAME
ERROR_NOTIFICATION_ID
ERROR_PERSON_ID
ERROR_PERSON_USERNAME
NAME NUMBER_VALUE
------------------------------ ------------
ERROR_RESULT_CODE
ERROR_STACK
ERROR_TYPE
ERROR_USER_KEY
ERROR:
ORA-01722: invalid number
Still investigating this one.
Monday, July 23, 2007
11g release 1 transparent gateway available for download on edelivery.oracle.com
Oracle 11gR1 transparent gateway is available for download on edelivery.oracle.com. Alas the full DB is not available for download yet. I installed the transparent gateway in the hope that I'll get the binaries for creating a DB. However $ORACLE_HOME/rdbms/admin contains only these files:
-bash-3.00$ ls -ltr
total 2392
-rw-r--r-- 1 oracle oracle 853 Jan 12 2002 initjms.sql
-rw-r--r-- 1 oracle oracle 1226 Feb 16 2005 agtept.lst
-rw-r--r-- 1 oracle oracle 44280 Apr 26 23:14 shrept.lst
-rw-r--r-- 1 oracle oracle 2349003 Jun 5 10:28 recover.bsq
-rw-r--r-- 1 oracle oracle 64 Jun 5 12:35 libxdb.def
-rw-r--r-- 1 oracle oracle 708 Jun 5 12:42 libskgxp11.def
-rw-r--r-- 1 oracle oracle 244 Jun 5 12:42 libskgxn2.def
These are not sufficient to create a db.
Saturday, July 21, 2007
insert_icm_record failed due to ORA-00001: unique constraint
APP-FND-01564: ORACLE error 1 in insert_icm_record
Cause: insert_icm_record failed due to ORA-00001: unique constraint (APPLSYS.FND_CONCURRENT_PROCESSES_U1) violated.
The SQL statement being executed at the time of the error was: INSERT INTO FND_CONCURRENT_PROCESSES (CONCURRENT_PROCESS_ID,
LAST_UPDATE_DATE, CREATION_DATE, CREATED_BY, LAST_UPDATED_BY, ORACLE_PROCESS_ID, QUEUE_APPLICATIO
N_ID, CONCURRENT_QUEUE_ID, OS_PROCESS_ID, SESSION_ID, PROCESS_START_DATE, PROCESS_STATUS_CODE, MANA
GER_TYPE, NODE_NAME, DB_NAME, DB_DOMAIN, SQLNET_STRING, DB_INSTANCE, Instance_Nu
mber) VALUES (:cpid, SYSDATE, SYSDATE, :mgrusrid, :mgrusrid, :opid,
:qappid, :qid, :ospid, :osid, SYSDATE, 'A', 0,
:node, :dbname, :dbdomain, :dbinst, (Select instance_name from v$instance), (Select instance_
number from v$instance)) and was executed from the file &ERRFILE.
List of errors encountered:
.............................................................................
_ 1 _
Routine AFPCAL received failure code while parsing or running your
concurrent program CPMGR
Since the error is due to unique index, I checked for the table_name and column_name of the index by firing this query:
1 select table_name,column_name from dba_ind_columns
2* where INDEX_NAME='FND_CONCURRENT_PROCESSES_U1'
SQL> /
TABLE_NAME
------------------------------
COLUMN_NAME
--------------------------------------------------------------------------------
FND_CONCURRENT_PROCESSES
CONCURRENT_PROCESS_ID
Next I looked for all the tables which had a column called CONCURRENT_PROCESS_ID:
SQL> select table_name from dba_tab_columns
2 where column_name='CONCURRENT_PROCESS_ID';
TABLE_NAME
------------------------------
FND_CONCURRENT_PROCESSES
FND_ENV_CONTEXT
CS_CONT_BILL_IFACE_ALL
CS_ORDERS_INTERFACE_ALL
CS_TERMINATION_INTERFACE_ALL
CS_TERMINATION_INTERFACE
CS_ORDERS_INTERFACE
CS_CONT_BILL_IFACE
Assuming that it is inserting a duplicate vale for concurrent_process_id, I checked for duplicates first by this query:
SQL> select concurrent_process_id,count(*)
2 from apps.fnd_concurrent_processes
3 group by concurrent_process_id
4 having count(*)>1;
no rows selected
So no existing duplicates. That means a new record which is being inserted is generating a duplicate concurrent_process_id.
SQL> select max(concurrent_process_id)
2 from apps.fnd_concurrent_processes
3 /
MAX(CONCURRENT_PROCESS_ID)
--------------------------
3483
Now we have to look for this value in all the tables which had this column:
SQL> select CONCURRENT_PROCESS_ID
2 from fnd_env_context
3 where CONCURRENT_PROCESS_ID=3483;
from fnd_env_context
*
ERROR at line 2:
ORA-01410: invalid ROWID
1 select concurrent_process_id
2 from apps.CS_CONT_BILL_IFACE_ALL
3* where concurrent_process_id=3483
SQL> /
no rows selected
SQL> select concurrent_process_id
2 from apps.CS_ORDERS_INTERFACE_ALL
3 where concurrent_process_id=3483
4 /
no rows selected
SQL> select concurrent_process_id
2 from apps.CS_TERMINATION_INTERFACE_ALL
3 where concurrent_process_id=3483
4 /
no rows selected
SQL> select concurrent_process_id
2 from apps.CS_TERMINATION_INTERFACE_ALL
3 where concurrent_process_id=3483
4 /
no rows selected
SQL> select concurrent_process_id
2 from apps.CS_TERMINATION_INTERFACE
3 where concurrent_process_id=3483
4 /
no rows selected
SQL> select concurrent_process_id
2 from apps.CS_ORDERS_INTERFACE
3 where concurrent_process_id=3483
4 /
no rows selected
SQL> select concurrent_process_id
2 from apps.CS_CONT_BILL_IFACE
3 where concurrent_process_id=3483
4 /
no rows selected
Something wrong with FND_CONTEXT_ENV. FND_ENV_CONTEXT table is populated with environmental data when a concurrent process starts.
I did 3 things:
1.
SQL>select CONCURRENT_PROCESS_ID from FND_ENV_CONTEXT;
CONCURRENT_PROCESS_ID
---------------------
3462
3462
3462
3462
3462
3462
3462
3462
3462
3462
3462
ERROR:
ORA-08103: object no longer exists
2.
SQL> create table apps.fnd_env_context_bak as select * from apps.fnd_env_context;
create table apps.fnd_env_context_bak as select * from apps.fnd_env_context
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kcbgtcr_12], [1], [], [], [], [],
[], []
3. Bimal tried export and got this error:
. . exporting table FND_ENV_CONTEXT
EXP-00056: ORACLE error 8103 encountered
ORA-08103: object no longer exists
Export terminated successfully with warnings.
A lookup on ORA-00600 thru ORA-600 lookup tool on metalink note: 153788.1 reveals this:
ERROR:
ORA-600 [kcbgtcr_12] [a]
VERSIONS:
Version 9.0 to 10.01
DESCRIPTION:
ORA-600 [kcbgtcr_12] is raised when Oracle is trying to create a current
buffer after reading the block from disk and fails since there already is
a current buffer for this block in the cache.
ARGUMENTS:
Arg [a] The buffer class
FUNCTIONALITY:
Kernel Cache Buffer management Implementation
IMPACT:
NON CORRUPTIVE - No underlying data corruption.
SUGGESTIONS:
Known issues:
Bug# 5523799 + See Note 5523799.8
Various OERI (eg kcbgtcr_12) using ASSM managed segments
Fixed:
Bug# 4996133 See Note 4996133.8
OERI[kcbgtcr_5] updating an IOT in RAC environment
Fixed: 10.2.0.3, 11
Bug# 4464828 See Note 4464828.8
OERI[kcbgtcr_12] using ANALYZE on ASSM segment
Fixed: 9.2.0.8
Bug# 2928757 See Note 2928757.8
OERI[kcbgcur_6] / OERI:[kcbgtcr_12] can occur for files converted to locally managed
Fixed: 9.2.0.5, 10.1.0.2
Bug# 2619867 See Note 2619867.8
OERI:[KCBGTCR_12] / ORA-8103 / ORA-1410 SELECTing from bitmap managed segment
Fixed: 9.2.0.3, 10.1.0.2
Bug# 2122159 See Note 2122159.8
OERI:KCBGTCR_12 possible in RAC (eg during parallel load)
Fixed: 9.0.1.4, 9.2.0.1
Bug# 1935292 See Note 1935292.8
OERI:KCBGTCR_12 etc.. doing STAR QUERY with TEMP TABLE TRANSFORMATION in IPQ
Fixed: 9.0.1.2, 9.2.0.1
Bug# 1777175 See Note 1777175.8
OERI:kcbgcur_12 / OERI:kcbgcur_6 / OERI:kclchkinteg_1 accessing a table which is being DROPPED
Fixed: 9.0.1.2, 9.2.0.1
We can try to truncate the table or drop / recreate it. However this being an Oracle seeded table and this being a Production instance, it is best to log an SR and let Oracle guide us.
While Bimal was working with Oracle to fix the FND_ENV_CONTEXT table, Subu gave a workaround for the issue:
The concurrent_process_id in the table fnd_concurrent_processes is populated by the sequence FND_CONCURRENT_PROCESSES_S. The abonormal shutdown of the server during the power outage may have prevented the sequence from incrementing. If you manually do a nextval query on the sequence, it increments the value of the sequence:
SQL> select apps.FND_CONCURRENT_PROCESSES_S.currval
2 from dual;
CURRVAL
----------
3483
SQL> select apps.FND_CONCURRENT_PROCESSES_S.nextval
2 from dual;
NEXTVAL
----------
3484
SQL> select apps.FND_CONCURRENT_PROCESSES_S.currval
2 from dual;
CURRVAL
----------
3484
After doing this query, the concurrent managers log showed a different error for each manager:
Starting SYSADMIN Concurrent Manager : 21-JUL-2007 09:05:07
ORACLE error 8102 in insert_fcp
Cause: insert_fcp failed due to ORA-08102: index key not found, obj# 40781, dba 121643011 (2)
ORA-06512: at "APPS.FND_CP_FNDSM", line 121
ORA-06512: at line 1.
The SQL statement being executed at the time
Could not initialize the Service Manager FNDSM_TSGP1402_gpsgnep1. Verify that TSGP1402 has been registered for concurrent pro
cessing.
ORACLE error 8102 in cleanup_node
Cause: cleanup_node failed due to ORA-08102: index key not found, obj# 40781, dba 121643011 (2)
ORA-06512: at "APPS.FND_CP_FNDSM", line 29
ORA-06512: at line 1.
Looks like object# 40781 is corrupt too:
SQL> select object_name
2 from dba_objects
3 where object_id=40781;
FND_CONCURRENT_PROCESSES_N1
The index was dropped and recreated and the concurrent managers started up.
Meanwhile for the corrupt FND_ENV_CONTEXT, Oracle gave this solution:
1. Make sure that concurrent managers are not running and there are no FNDLIBR processes.
2. drop table FND_ENV_CONTEXT as APPLSYS user.
3. Open telnet window and source apps environment.
4. Execute the following:
adodfcmp userid=applsys/apps mode=tables odffile=
touser=apps/
Friday, July 20, 2007
Apply all E-biz CPU patches from scratch when you upgrade E-Biz
This is because security patches are version dependant and if you had them on 11.5.9, it doesn't protect your 11.5.10.2 code.
Thursday, July 19, 2007
Unable to clear JspWriter buffer, data already written to stream
Message: Unable to clear JspWriter buffer, data already written to stream.
Stack:
java.io.IOException: Unable to clear JspWriter buffer, data already written to stream.
at oracle.jsp.runtime.OracleJspWriter.clear(OracleJspWriter.java:474)
at _oa__html._z__gepp__voc._jspService(_z__gepp__voc.java:908)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:385)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:259)
at oracle.jsp.JspServlet.internalService(JspServlet.java:178)
at oracle.jsp.JspServlet.service(JspServlet.java:148)
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:534)
On http://www.oreillynet.com/pub/a/oreilly/java/news/jsptips_1100.html tip 2 provides details of why this error occurs:
Dealing with Buffer Flushing Issues
An HTTP response message contains both headers and a body. The headers tell the browser things like what type of data the body contains (HTML text, an image), the size of the body, if the body can be cached, and so on. Headers are also used to set cookies and to tell the browser to automatically get another page (a redirect). All response headers must be sent to the browser before the body is sent.
To allow parts of the body to be produced (from static template text as well as content generated dynamically by JSP elements) before headers are set, the body is buffered. Instead of sending the response to the browser as soon as something is written to the response body, the JSP container writes all static markup code and all dynamic content generated by JSP elements to the buffer. At some point, such as when the buffer is full or the end of the page is reached, the container sends all headers that have been set followed by the buffered body content. In servlet speak, this is called committing the response. After the response has been committed, you can't set headers, such as for cookies or a redirection instruction. Another thing you can't do is forward the request to another page.
In most cases, this is not a problem. The default buffer size is 8KB, more than enough for a typical page, and you can increase it with the buffer attribute of the page directive. But if you use the include action in a page, you may be in for a surprise. Due to limitations in the way the servlet features used by
An unfortunate side-effect of this automatic flushing is that runtime errors triggered by JSP elements after a
Workaround: Bounce Apache. One hit in Metalink for this error is note 234431.1 which is in iStore and as expected is a bug (code error) for which a specific iStore patch is suggested.
If you get this issue too often, log an SR with Oracle to get a patch.
Sabrix doesn't generate invoices with tax
Auto Invoice Request Id 467832
Batch Source: PROJECTS INVOICES
Transaction Flexfield: PROJECTS INVOICES: 102992.2.381591-C.7560 CONTROLS/NUMAC.Duncan, Michael George. 1.Line
Type Bill to Customer Name Item Description Currency Amount
-------------------- ---------------------------------------- ---------------------------------------- ----------- -----------------
Invoice EXAMPLE VENDOR Example items Procured USD 5000.00
Errors: 1) Sabrix Error: [Servlet];Sev[2];Msg: [Invalid file format: expected INVOICE start tag in XML.]
2) Unable to find a default tax code for this transaction.
They engaged Sergei Nikonorov of Sabrix Inc. After asking the application support team to fire various queries, he concluded that the issue was with temp tables in Sabrix schema. After truncating these temporary tables, the issue was solved. Sergei advised us to have these tables truncated every week.
After doing the above, AutoInvoice ran successfully.
Complete: Migration of old blog posts from vikramdas.livejournal.com
For now, this is my new blog and I hope that it lives longer than I live.
Most missed rapidclone steps
During cloning, DBAs most often miss the finishing tasks as outlined in Metalink Note 230672.1 (Cloning Oracle Applications Release 11i with Rapid Clone). These are tasks which need to be done manually by a DBA as RapidClone doesn't take care of them :
Section 3: Finishing Tasks
This section lists tasks that may be necessary depending on your implementation and the intended use of the cloned system.
- Update profile options
Rapid Clone updates only site level profile options. If any other profile options are set to instance specific values, you must update them manually. - Update printer settings
If the new cloned system needs to utilize different printers, update the target system with the new printer settings now. - Update workflow configuration settings
Cloning an Oracle Applications instance will not update the host and instance specific information used by Oracle Workflow. Review the following tables and columns to verify there is no instance specific data in the Workflow configuration on the target system.Table Name Column Name Column Value Details WF_NOTIFICATION_ATTRIBUTES TEXT_VALUE Value starts with http:// : Update to new web host WF_ITEM_ATTRIBUTE_VALUES TEXT_VALUE Value starts with "http:// : Update to new web host WF_SYSTEMS GUID Create a new system defined as the new global database name using the Workflow Administrator Web Applications responsibility. WF_SYSTEMS NAME Value needs to be replaced with the database global name WF_AGENTS ADDRESS Update database link with the new database global name. FND_FORM_FUNCTIONS WEB_HOST_NAME Update with the new web host name FND_FORM_FUNCTIONS WEB_AGENT_NAME Update to point at the new PLSQL listener name FND_CONCURRENT_REQUESTS LOGFILE_NAME Update with the correct path to the logfile directory FND_CONCURRENT_REQUESTS OUTFILE_NAME Update with the new directory path on the target system - Verify the APPLCSF variable setting
Source the APPS environment and review that the variable APPLCSF (identifying the top-level directory for concurrent manager log and output files) points to an acceptable directory. To modify it, change the value ofs_applcsf
in the contextfile and run AutoConfig. - Update the SESSION_COOKIE_DOMAIN value in ICX_PARAMETERS
If the target system is in a different domain name than the source system and SESSION_COOKIE_DOMAIN was not null in the source system, update that value to reflect the new domain name.
Customize appsweb.cfg
To ensure that the new appsweb.cfg created by adconfig, keeps your customizations, include your customizations in the myExtensions section of the appsweb.cfg template file present in $FND_TOP/admin/template/appsweb.cfg
Autoconfig uses the template $FND_TOP/admin/template/appsweb.cfg and creates these files:
$FND_TOP/resource/appsweb.cfg
$FND_TOP/resource/appsweb_CONTEXT_NAME.cfg
$OA_HTML/bin/resource/appsweb.cfg
$OA_HTML/bin/resource/appsweb_CONTEXT_NA
How to find the CPU clock speed and frequency of a Solaris server
/usr/platform/`uname -i`/sbin/prtdiag
In our Solaris E2900 Server following is the excerpt from the output which shows CPU frequency as 1350 MHz and clock frequency as 150 MHz.
System Configuration: Sun Microsystems sun4u Sun Fire E2900
System clock frequency: 150 MHZ
Memory size: 96GB
======================================= CPUs =======================================
E$ CPU CPU Temperature Fan
CPU Freq Size Impl. Mask Die Ambient Speed Unit
------ -------- ---------- ------ ---- -------- -------- ----- ----
SB0/P0 1350 MHz 16MB US-IV 3.1 82 C 35 C
SB0/P1 1350 MHz 16MB US-IV 3.1 81 C 35 C
SB0/P2 1350 MHz 16MB US-IV 3.1 78 C 34 C
SB0/P3 1350 MHz 16MB US-IV 3.1 80 C 34 C
SB2/P0 1350 MHz 16MB US-IV 3.1 77 C 35 C
SB2/P1 1350 MHz 16MB US-IV 3.1 78 C 36 C
SB2/P2 1350 MHz 16MB US-IV 3.1 83 C 37 C
SB2/P3 1350 MHz 16MB US-IV 3.1 82 C 37 C
SB4/P0 1350 MHz 16MB US-IV 3.1 66 C 32 C
SB4/P1 1350 MHz 16MB US-IV 3.1 73 C 34 C
SB4/P2 1350 MHz 16MB US-IV 3.1 84 C 38 C
SB4/P3 1350 MHz 16MB US-IV 3.1 74 C 33 C
prtdiag can be executed by any user and doesn't require root privilege.
Testgroup is secured and requires execution privileges
I can’t execute tests; Tests have lock icon and when selected gives 'Testgroup is secured and requires execution privileges'
- Ask System Administrator to grant required roles to the responsibilities of the user.
How to provide user access to a test?
- To be able to access a test, the user’s responsibility should have proper role granted depending on the sensitivity of the test.
Roles are granted to users through responsibilities:
- Responsibilities are assigned to users
Roles are granted to responsibilities
Configuration > Security > Select the appropriate diagnostics role
This will take you to the ‘Role Responsibility Assignment’ page through which you can grant the selected role to various responsibilities.
How to decide what role should be granted to which responsibilities?
Super User Role:Has unrestricted privileges to execute, configure, view reports and setup security for all groups and all applications.
Grant this role to the most privileged responsibilities (like System Administration) across all applications. This role should NOT be commonly granted.
By default, this role has been granted to ‘System Administrator’ and ‘CRM HTML Administration’ responsibilities.
Application Super User:
Has unrestricted privileges to execute, configure, view reports for the application associated with his responsibility. Grant this role to the most privileged responsibilities (like super user) for an application.
End User:
Has restricted privileges (execute, view reports). Grant this role to regular application responsibilities that need to access diagnostics for running tests. By default this role is granted to ‘Oracle Diagnostics Tool’ responsibility.
Unix level test to see if smtp is working from command line
$ telnet justanexample.com 25
Trying 192.168.100.187...
Connected to justanexample.com.
Escape character is '^]'.
220 justanexample.com ESMTP Sendmail 8.11.7p2+Sun/8.11.7; Thu, 12 Jul 2007 18:29:38 -0400 (EDT)
HELO justanexample.com
250 justanexample.com Hello justanexample.com [your IP address], pleased to meet you
MAIL FROM:user1@justanexample.com
250 2.1.0 user1@justanexample.com... Sender ok
RCPT TO:appsdba@yahoo.com
250 2.1.5 appsdba@yahoo.com... Recipient ok
If relaying is denied, then it will give message
550 5.7.1 appsdba@yahoo.com... Relaying denied
Unexpected failure. Password file/table unchanged
Unexpected failure. Password file/table unchanged
Solution is given in Sun Alert 57592: http://sunsolve.sun.com/search/document.do?assetkey=1-26-57592-1
The described issue only occurs if all of the following are true:
* One of the patches listed above is installed on the system
* /etc/nsswitch.conf(4) contains the entry "passwd: compat"
* user accounts have passwd(4) entries that begin with a "+" (plus sign) or a "-" (minus sign)
Note: Password entries with a "+" or "-" selectively incorporate entries from a network repository (NIS, NIS+, or LDAP) for the password data. To view the "passwd" entries in the nsswitch.conf(4) file, execute the following command:
$ egrep "^passwd" /etc/nsswitch.conf
passwd: compat
3. Symptoms If the described issue occurs, users may see the following error message when attempting to change their password:
$ passwd
passwd: Changing password for username
passwd: Unsupported nsswitch entry for "passwd:". Use "-r repository ".
Unexpected failure. Password file/table unchanged
Solution Summary Top
4. Relief/Workaround Users whose accounts are specified as +/- in the passwd(4) file can workaround this issue by specifying the repository to update with the "-r" option, such as:
$ passwd -r nis
OR
$ passwd -r nisplus
OR
$ passwd -r ldap
5. Resolution This issue is addressed in the following releases: SPARC Platform
* Solaris 8 with patch 108993-35 or later
* Solaris 9 with patch 112960-14 or later
x86 Platform
* Solaris 8 with patch 108994-35 or later
* Solaris 9 with patch 114242-09 or later
UNEXPECTED:[fnd.common.logging.FileHandler.publish]
Request URI:/OA_HTML/AppsLocalLogin.jsp
Exception:
java.lang.NoClassDefFoundError
No errors in Apache logs. No errors in mod_jserv.log
jvm logs showed this error:
[Jul 2, 2007 6:39:26 PM EDT]:1183415966826:Thread[Thread-10883,10,main]:-1:-1:
D:[fnd.common.logging.FileHandler.publish]:Please check File Permission/Disk Space for: aferror.log, defaulting Logging to ST
DERR
java.lang.NoClassDefFoundError
at oracle.apps.fnd.common.WebRequestUtil.validateContext(WebRequestUtil.java:391)
at oracle.apps.fnd.framework.webui.OAHttpSessionCookieImpl.validateIcxCookie(OAHttpSessionCookieImpl.java:171)
at oracle.apps.fnd.framework.OASessionCookieHelper.validateIcxSession(OASessionCookieHelper.java:467)
at oracle.apps.fnd.framework.OASessionCookieHelper.initializeApplicationModule(OASessionCookieHelper.java:125)
at oracle.apps.fnd.framework.webui.OAHttpSessionCookieImpl.initializeApplicationModule(OAHttpSessionCookieImpl.java:9
01)
at oracle.apps.fnd.framework.webui.OAHttpSessionCookieImpl.useApplicationModule(OAHttpSessionCookieImpl.java:481)
at oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:398)
at oracle.apps.fnd.framework.webui.OAJSPApplicationRegistry.registerApplicationModule(OAJSPApplicationRegistry.java:2
08)
at oracle.apps.fnd.framework.webui.OAJSPApplicationRegistry.registerApplicationModule(OAJSPApplicationRegistry.java:7
8)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1177)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:502)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:423)
at _oa__html._OA._jspService(_OA.java:88)
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 oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
at _oa__html._OA._jspService(_OA.java:98)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at _oa__html._OA._jspService(_OA.java:98)
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 oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
at _oa__html._OA._jspService(_OA.java:98)
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:534)
Investigating it now.
E-biz instance slow
1. If you launched a forms session from self service it would not launch and display this on status bar:
waiting for http://justanexample.com/OA_HTML/....
2. We had blocking locks where the blocking program was FNDSCAUS and waiting program were self service OA Framework pages
3. Alert log stopped showing new entries after a new tablespace was added for installation of STATSPACK:
Tue Jul 10 19:04:53 2007
create tablespace PERFSTAT_TBLSPC
datafile '$ORACLE_HOME/dbdata/perfstat01.dbf' size 500M
Tue Jul 10 19:05:15 2007
Completed: create tablespace PERFSTAT_TBLSPC
datafile '/
4. SQL> select object_name from dba_objects
2 where object_id in (select object_id from v$locked_object);
OBJECT_NAME
--------------------------------------------------------------------------------
AQ$_WF_CONTROL_H
AQ$_WF_CONTROL_I
AQ$_WF_CONTROL_T
FND_CONCURRENT_PROCESSES
FND_CONCURRENT_QUEUES
FND_SVC_COMPONENTS
PA_COMMITMENT_TXNS_TMP
WF_JAVA_DEFERRED
AQ$_WF_JAVA_DEFERRED_T
AQ$_WF_JAVA_DEFERRED_H
AQ$_WF_JAVA_DEFERRED_I
OBJECT_NAME
--------------------------------------------------------------------------------
AQ$_FND_CP_GSM_OPP_AQTBL_T
AQ$_FND_CP_GSM_OPP_AQTBL_H
AQ$_FND_CP_GSM_OPP_AQTBL_I
AP_WEB_PROXY_ASSIGNMENTS
GEPS_TCARD_EXT_TEMP
16 rows selected.
5. We had waits on these events:
90 library cache lock
10 library cache pin
6. adapcctl.sh stop command went into hang state.
After about 2 hours, everything seemed to come back to life suddenly. The hanging adapcctl.sh stop command succeeded, The waiting forms session launched itself, blocking locks disappeared and after a 2 hour gap, entries started appearing in the alert log:
Tue Jul 10 19:05:15 2007
Completed: create tablespace PERFSTAT_TBLSPC
datafile '/
Tue Jul 10 20:58:08 2007
Beginning log switch checkpoint up to RBA [0x2f8.2.10], SCN: 0x08f3.2555e155
Thread 1 advanced to log sequence 760
Research on metalink revealed note 287059.1, which describes an instance hang situation when there is a library cache pin/lock pile, which is similar to our situation.
Subject: Library Cache Pin/Lock Pile Up hangs the application
Note:287059.1 Type: PROBLEM
Last Revision Date: 09-MAY-2007 Status: PUBLISHED
The information in this document applies to:
Oracle Server - Enterprise Edition - Version: <8.1.7.4 to 10.2.0.0
This problem can occur on any platform.
Symptoms
SystemState Dump shows 2 session on a library cache pin deadlock or a single session on a "library cache pin" self deadlock.
The Call stack Trace of one of the session shows the following pattern :
kqdgtc -> ... -> kkscls -> kxstcls -> ... -> kglpin
The sessions are doing a recursive operation.
Here is an example of the self deadlock.
It is requesting a Pin in S mode on handle 5eb723ec and at the same time it has the already acquired the pin in X mode.
----------------------------------------
SO: 0x6614b2ec, type: 52, owner: 0x54fc1324, flag: INIT/-/-/0x00
LIBRARY OBJECT PIN: pin=6614b2ec handle=5eb723ec request=S lock=8c04b694
user=54fc1324 session=54fc1324 count=0 mask=0000 savepoint=558512 flags=[00]
----------------------------------------
SO: 0x78093280, type: 52, owner: 0x54fc1324, flag: INIT/-/-/0x00
LIBRARY OBJECT PIN: pin=78093280 handle=5eb723ec mode=X lock=804ad2e4
user=54fc1324 session=54fc1324 count=0 mask=0041 savepoint=558293 flags=[00]
----------------------------------------
Changes
TIMED_STATISTICS=TRUE
Cause
Bug 3661076 INSTANCE HANG DUE TO DEADLOCK WAITING ON LIBRARY CACHE PIN
A session is in need of a row cache cursor from the LRU and it could pick any dictionary cursor to map which it has previously used.
Now consider a second process (or session) concurrently doing some different operation parsing a different row cache cursor but needing to close one from its LRU could end up deadlocked with a similar stack segment.
The X mode when closing the cursor is needed when updating the statistics of the cursor generated while having some tracing enabled like (but not limited to) TIMED_STATISTICS=TRUE, or SQL_TRACE.
The deadlock and the pile up will not happen until there is a request in X mode.
Some of the reasons to close a row cache cursor are
- Lots of Recursive operations
- Shared Pool too small
- runs out of cache
There is currently a limitation to detect deadlock at the row cache level.
Fix
Identify the blocking session and get 3 errorstack dumps to confirm.
SELECT s.sid, kglpnmod "Mode", kglpnreq "Req", SPID "OS Process"
FROM v$session_wait w, x$kglpn p, v$session s ,v$process o
WHERE p.kglpnuse=s.saddr
AND kglpnhdl=w.p1raw
and w.event like '%library cache pin%'
and s.paddr=o.addr
/
To free up the instance kill the blocking session at the OS level.
To prevent it from happening do any, some or all of the following :
- set TIMED_STATISTICS=FALSE
- set _row_cache_cursors=20 or more (10 default)
- don't do any kind of tracing
References
Note 34579.1 - WAITEVENT: "library cache pin" Reference Note
Bug 3661076 - Instance Hang Due To Deadlock Waiting On Library Cache Pin
Bug 3679080 - Deadlock On Library Cache Pin
Note 122793.1 - HOW TO FIND THE SESSION HOLDING A LIBRARY CACHE LOCK
Later on we were informed by Production Support team that this is a known issue with STATSPACK installation, and it should be done only during downtime and not when all apps services are up. Difficult to swallow this, but will go deeper in this one, another day.
E-biz instance hung, low values of sga_max_size, ORA-600 in alert log
The situation was so bad that E-business suite was not allowing any new logins. While connected to db if you gave the command show parameter shared_pool it would hang. Finally it was not allowing to do sqlplus /nolog connect / as sysdba also. We stopped all the application services and killed all the LOCAL=NO DB processes, but were unable to connect / as sysdba. The alert log showed these:
Tue Jul 10 13:36:28 2007
Waited too long for library cache load lock. More info in file $ORACLE_HOME/admin/$CONTEXT_NAME/udump/$ORACLE_SID_ora_6094.trc.
Tue Jul 10 13:39:06 2007
Errors in file $ORACLE_HOME/admin/$CONTEXT_NAME/udump/$ORACLE_SID_ora_926.trc:
ORA-00600: internal error code, arguments: [kksscl-inf-inl-loop], [2500], [1], [362], [725], [725], [], []
Tue Jul 10 13:39:06 2007
Errors in file $ORACLE_HOME/admin/$CONTEXT_NAME/bdump/$ORACLE_SID_cjq0_29067.trc:
ORA-00600: internal error code, arguments: [kksscl-inf-inl-loop], [2500], [1], [362], [725], [725], [], []
Tue Jul 10 13:39:06 2007
Errors in file $ORACLE_HOME/admin/$CONTEXT_NAME/bdump/$ORACLE_SID_smon_29063.trc:
ORA-00600: internal error code, arguments: [kksscl-inf-inl-loop], [2500], [1], [362], [725], [725], [], []
Tue Jul 10 13:39:07 2007
Errors in file $ORACLE_HOME/admin/$CONTEXT_NAME/bdump/$ORACLE_SID_cjq0_29067.trc:
ORA-00600: internal error code, arguments: [kksscl-inf-inl-loop], [2500], [1], [362], [725], [725], [], []
Tue Jul 10 13:39:08 2007
Non-fatal internal error happenned while SMON was doing work on sort segment.
SMON encountered 1 out of maximum 100 non-fatal internal errors.
Tue Jul 10 13:39:50 2007
Errors in file $ORACLE_HOME/admin/$CONTEXT_NAME/udump/$ORACLE_SID_ora_1544.trc:
ORA-00600: internal error code, arguments: [kksscl-inf-inl-loop], [2500], [1], [362], [725], [725], [], []
Tue Jul 10 13:39:50 2007
Errors in file $ORACLE_HOME/admin/$CONTEXT_NAME/bdump/$ORACLE_SID_cjq0_29067.trc:
ORA-00600: internal error code, arguments: [kksscl-inf-inl-loop], [2500], [1], [362], [725], [725], [], []
Tue Jul 10 13:39:50 2007
Since we could not login with sqlplus, we had to kill all oracle processes on OS level and started the db.
The parameters which had low values were:
sga_max_size = 600 M
shared_pool_size=300M
processes=2654
sessions=800
We increased these to:
sga_max_size=4G
shared_pool_size=1G
processes=3000
sessions=6000
Restarted the DB. Warning about oradism appeared in the alert log (described in a previous post). Shutdown the DB and fixed the permissions of oradism binary. Restarted.
No issues after this.
WARNING: oradism not setup correctly in alert log
WARNING: -------------------------------
WARNING: oradism not set up correctly.
Dynamic ISM can not be locked. Please
setup oradism, or unset sga_max_size.
[diagnostic 0, 16, 64882]
----------------------------------------
Metalink note 374367.1 describes the issue and provides the solution:
The real problem was with the oradism executable itself.
The oradism executable cannot have 755 permissions, and owned by root or oracle
(rwx-r-x-r-x)like the other executables have in this directory
The permissions for oradism must be 4550 with the setid for the group.
(-r-sr-s--- 1 root dba 12912 Feb 16 2005 oradism)
(Solaris8 64-bit / oracle v9.2.0.4)
Solution
1- cd $ORACLE_HOME/bin
2- chmod 4550 oradism
3- chmod g+s oradism
4- chown root:dba oradism
5- Bounce the database
The oradism warning does not appear in the alert log after the permissions were changed.
Good way to find out all timeout varibles set by autoconfig
$ grep timeout $CONTEXT_FILE
s_keepalive_timeout: Number of seconds OHS will wait for a subsequent connection
s_sesstimeout : Jserv Session Timeout in milliseconds to wait before an unused
session is invalidated
s_apjserv_vmtimeout: Amount of time given to a JVM to startup and wait to ping the JVM to see if it is alive
s_ohstimeout: This parameter stands for the amount of time (in seconds) the Oracle HTTP Server will wait for certain events(GET,POST,PUT etc) before failing a request
s_servlet_init_timeout: Number of milliseconds to wait before aborting initialization of a servlet
s_apctimeout: Apache Process Timeout in seconds
s_apcplstimeout: Apache Process Timeout for PL/SQL in seconds
s_tnstimeout: TNS Process Timeout in seconds
s_tcftimeout: TCF Process Timeout in seconds
s_conctimeout: Concurrent Process Timeout in seconds
s_formstimeout: Forms Process Timeout in seconds
s_reptstimeout: Forms Process Timeout in seconds
s_metcltimeout: Metrics Client Process Timeout in seconds
s_metcsrvtimeout: Metrics Server Process Timeout in seconds
s_icsmtimeout: ORACLE ICSM Process Timeout in seconds
s_jtffcsrvtimeou: Oracle Fulfillment Server Timeout in seconds
s_icxblksrvtimeout: Procurement Bulk Loader Timeout in seconds
s_discotimeout: Discoverer Process Timeout in seconds
What is the version of raaips.lpc
Note: At the time of this writing the latest version of raaips.lpc was 115.11 in Patch 2892559.
I checked for patch 2892559 and saw that it was only 75 KB in size. Promptly I downloaded it in the hope of finding the path of the raapis.lpc file. However the file raapis.lpc was not present in the patch. I searched for raapis* and found this:
D:\download\p2892559_11i_LINUX>dir raaips*/s
Volume in drive D is Data
Volume Serial Number is AC3C-A42C
Directory of D:\download\2892559\ar\lib
01/03/2002 03:03 AM 25,396 raaips.o
1 File(s) 25,396 bytes
That means the file would be in $AR_TOP/lib
$ cd $AR_TOP/lib
$ adident Header raaips.o
raaips.o:
$Header raaips.lpc 115.14 2004/09/21 15:45:22 mraymond ship $
I gave the information to Bimal.
adpatch options=nocompilejsp
perl -x $JTF_TOP/admin/scripts/ojspCompile.pl --compile
Here's how the output of the above command looks like:
starting...(compiling delta)
using 8i internal ojsp ver: 1.1.3.5.2
including compatibility flag -whiteSpaceBetweenScriptlet
synchronizing dependency file:
loading deplist...15409
enumerating jsps...15409
updating dependency...0
initializing compilation:
eliminating children...12318 (-3091)
searching uncompiled...8677
translating and compiling:
searching untranslated...0
compiling jsps... 12% complete: 1100/8677 ETA: 14m7s
Do not use --quite option, as you would not be able to know the progress.
Complete syntax is:
syntax: $JTF_TOP/admin/scripts/ojspCompile.pl COMMAND {ARGS}
COMMAND --compile update dependency, compile delta
--create rebuild entire dependency file
-delta.out
-dep.out
ARGS -s
-p
-log
You are
recommended to set the log file location
outside of any network file system shared (NFS) area/drive.
-conf
--retry retry previously failed compilation attempts
--flush forces recompilation of all parent JSPs
--quiet do not provide an actively running progress meter
--fast instantly fail jsps that are *possibly* invalid
example1: ojspCompile.pl --compile -s 'jtf%' -p 20 --retry
example2: ojspCompile.pl --compile -s 'jtflogin.jsp,jtfavald.jsp' --flush
example3: ojspCompile.pl --compile --fast --quiet
jsps do compile on the fly, but that affects the application performance. So it is a good idea to compile them in advance, if you have not done it during adpatch itself.
In which directory does FND_FILE write ?
If you go to sqlplus and exec FND_FILE.PUT_LINE(FND_FILE.LOG, 'THIS IS A TEST');
A new file with a name like lnnnnnnnn.tmp is created in /usr/tmp containing the text: 'THIS IS A TEST'. /usr/tmp is the first directory in utl_file_dir.
Metalink Note 261693.1 has information on troubleshooting ORA-20100 on Concurrent Processing, which is where FND_FILE is involved.
Segmentation fault and coredump on Tru64 Unix
Truss is available in tru64 if you have the extended system V software install that you get from your associated products disk. When loaded it is
in /usr/opt/svr4/usr/bin.
But /usr/opt/svr4/usr/bin/truss gave command not found error.
At this time, the user told me that the program is doing a segmentation and coredump when certain type of data is keyed in and they have zeroed in on it. I suggested that they build validation in their code to disallow entry of such data.
PARGDR PRC: Generate Draft Revenue for a Range of Projects Errors With Ora-1555
Solution
Increase the undo_retention parameter. The proper setting for this parameter can be determined by querying V$UNDOSTAT view once the database has been running for a while. Change theUNDO_RETENTION parameter to at least equal the following query:
SQL> select max(maxquerylen) from v$undostat;
In our instance the value returned by above query was 14854.
undo_retention was correctly set as 36000 which is much above the 14854 requirement. The request completed successfully in 4 hours 15 minutes.
During an R12 Multi-node Install Why Do All Middle Tiers Run All Services?
Metalink note 415385.1 explains the reason for something queer which I observed during an R12 multi node install. All middle tiers run all services irrespective of what you have defined for them. Here's a copy paste from the relevant section in the note, which explains why this is happening:
In R12, the concept for Applications Nodes has changed. When installing R12 with multiple nodes. all the nodes are now set as 'Y' in FND_NODES.
This occurs because in R12, concept of unified APPL_TOP is introduced which means everything is laid down on all servers.
From the APPL_TOP perspective, all the servers on a Multi-node environment will have the same files and can now potentially start any service if needed. In some cases, additional configuration will be required before this can be done since there can be profiles, etc associated with each server.
For R12, the only difference between the servers, are the Services that have been activated on each node.
The services are identified by the variables on the /service_group/ section in the Apps Context File:
Root Service Group : s_root_status
Web Entry Point Services : s_web_entry_status
Web Application Services : s_web_applications_status
Batch Processing Services : s_batch_status
Other Service Group : s_other_service_group_status
Depending on the value of these variables (enabled or disabled), adstrtal.sh / adstpall.sh will only start/stop the services associated with them, ignoring the rest.
For example, if a node has only /s_batch_status/ "enabled" and the rest of the services are disabled, when you run adstrtall.sh on that server it will only start the Concurrent Managers and the TNS Listener for Apps.
NOTE: If you experience the problem where all of the service_group variables are enabled on all application tiers make sure you are using the latest version of the Rapid Install StartCD (12.0.0.21) shipped with Patch 5766801.
ORA-07445: exception encountered: core dump [drurnew()+184] on 10.2.0.3 on E-biz
ORA-07445: exception encountered: core dump [drurnew()+184] [SIGSEGV] [Address not mapped to object] [0x000000040]
On investigation, we found that it was a known Oracle bug # 5587976. The solution is to apply database patch 5587976. Once you apply this patch on your database through opatch and resume the failed patch, no errors are reported.
Errors during txkprepatch.pl for ATG_PF.H RUP5 on concurrent tier
$ perl $PATCH_TOP/5473858/fnd/patch/115/bin/txk
Errors encountered running $PATCH_TOP/5473858/fnd/patch/115/bin/txk
*******FATAL ERROR*******
PROGRAM : ($PATCH_TOP/5473858/fnd/patch/115/bin/tx
TIME : Tue Jul 3 11:52:34 2007
FUNCTION: TXK::IO::open [ Level 3 ]
MESSAGES:
error = Unable to open file by ref
errorno = Illegal seek
STACK TRACE
TXK::Error::abort('TXK::Error', 'HASH(0x1c788c)') called at $PATCH_TOP/5473858/fnd/perl/TXK/Common.p
TXK::Common::doError('TXK::IO=HASH(0x9e7
TXK::Common::setError('TXK::IO=HASH(0x9e
TXK::IO::open('TXK::IO=HASH(0x9e71b8)', 'HASH(0xce27fc)') called at $PATCH_TOP/5473858/fnd/perl/TXK/SQLPLUS.p
TXK::SQLPLUS::_doExecute('TXK::SQLPLUS=H
TXK::SQLPLUS::validateConnectInfo('TXK::S
TXK::SQLPLUS::setConnectInfo('TXK::SQLPL
TXK::TechstackDB::validateDBPassword('TX
TXK::RunScript::validateInputParameters(
require $PATCH_TOP/5473858/fnd/patch/115/bin/txk
TXK::RunScript::require('TXK::RunScript'
eval {...} called at $PATCH_TOP/5473858/fnd/perl/TXK/Script.p
TXK::Script::run('TXK::Script=HASH(0x4ea
The perl environment is set correctly and there are no periods in the directory names from where the perl file is being called.
$ env |grep PERL
ADPERLPRG=$IAS_ORACLE_HOME/Apache/perl/b
PERL5LIB=$IAS_ORACLE_HOME/Apache/perl/li
Simple solution to the problem:
Check your current shell by doing echo $SHELL. If it returns "sh", then it is a shell issue. Instead of using sh, use ksh. That means, before launching the txkprepatch.pl command, on unix prompt type:
$ ksh
Then issue the txkprepatch.pl command:
$ perl $PATCH_TOP/5473858/fnd/patch/115/bin/txk
You will not get any errors this time.
Metalink Note 335822.1 does describe a similar problem in AIX, but we are on Solaris. Here's a copy paste from that note:
=====================================
Cause
This issue is happening on tiers that are not webNodes.
The reason is that the Perl executable in iAS 1.0 on these
tiers (o/s HP or AIX) is not compatible to run this script.
Solution
To implement the solution, please execute the following steps:Solutions:
1. Upgrade the iAS on this tier
Probably not desirable since this is not a primary Web Tier
but a valid solution.
2. Use the o/s version of Perl if it is higher than the iAS
If upgrading the perl version see AutoConfig FAQ Note 218089.1
for information on how to propogate this change in apps.
Either of the above will resolve this issue.
========================================
I downloaded perl 5.8.8 and installed it on the concurrent tier.
Changed these environment variables:
ADPERLPRG=/usr/local/bin/perl
PERL5LIB=/usr/local/lib/perl5/5.8.8: /usr/local/lib/perl5/site_perl/5.8.8: $AU_TOP/perl
$ /usr/local/bin/perl txkprepatchcheck.pl -script=ValidateRollup -outfile=txkValidateRollup.html \
> -appspass=apps
*** ALL THE FOLLOWING FILES ARE REQUIRED FOR RESOLVING RUNTIME ERRORS
*** STDOUT = $APPLRGF/TXK/txkValidateRollup_Tue_Jul_3
Reportfile txkValidateRollup.html generated successfully.
How to find the wordsize (32-bit or 64-bit) of Oracle Database
Gary Robinson's oracleadvice.com has very good pointers on how to determine the wordsize on http://www.oracleadvice.com/Tips/32or64
select (case length(address)
when 16 then '64-bit Oracle'
when 8 then '32-bit Oracle'
when 32 then '128-bit Oracle'
end) Wordsize
from v$sql
where rownum <2
/
WORDSIZE
--------------
64-bit Oracle
Activate extended SQL trace for a given session
There are several ways to activate extended SQL tracing for a given session. Two such ways are shown in Example 6-5 and Example 6-6. Oracle encourages you to use the DBMS_SUPPORT package instead of DBMS_SYSTEM if you have a choice (Oracle MetaLink note 62294.1). However, Oracle does not ship dbmssupp.sql and prvtsupp.plb with some software distributions. If you cannot find DBMS_SUPPORT on your system, don't despair. My colleagues and I have used DBMS_SYSTEM.SET_EV in hundreds of performance improvement projects without negative incident. Friends in Oracle Support have informed me that the DBMS_SUPPORT.START_TRACE_IN_SESSION procedure is implemented as a call to SET_EV anyway.
The safety of using START_TRACE_IN_SESSION is that you're not susceptible to typographical errors in specifying event 10046. Accidentally typing the wrong event number could obviously lead to catastrophe.
Example 6-5. Activating extended SQL trace at level 8 with START_TRACE_IN_SESSION for a session identified by :sid and :serial
sys.dbms_support.start_trace_in_session(:sid, :serial,waits=>true, binds=>false)
sys.dbms_support.stop_trace_in_session(:sid, :serial)
Do not use DBMS_SYSTEM.START_SQL_TRACE_IN_SESSION to activate extended SQL trace, because this procedure can activate SQL tracing only at level 1. You cannot activate extended SQL tracing with START_SQL_TRACE_IN_SESSION.
Example 6-6. Activating extended SQL trace at level 8 with SET_EV for a session identified by :sid and :serial
sys.dbms_system.set_ev(:sid, :serial, 10046, 8, '')
/* code to be traced executes during this time window */
sys.dbms_system.set_ev(:sid, :serial, 10046, 0, '')
You may also refer to Metalink Note: 376422.1 which describes recommended methods for getting extended trace:
Subject: | Recommended Method for Obtaining 10046 trace for Tuning | |||
Doc ID: | Note:376442.1 | Type: | FAQ | |
Last Revision Date: | 19-FEB-2008 | Status: | PUBLISHED |
Outline how to effectively gather 10046 trace for use with tuning issues.
SCOPE & APPLICATION
DBAs, Developers and Support personnel
Gathering 10046 trace
Event 10046 is the standard method of gathering extended sql_trace information for Oracle sessions.
For details of the event see:
Note 21154.1 EVENT: 10046 "enable SQL statement tracing (including binds/waits)"
For Tuning issues the typical need is to record wait and bind variable infrormation which is achieved using level 12.
The following examples outline how to set the event in various scenarios:
- Session Tracing
- Tracing a process after it has started
- Instance wide tracing
- Initialisation parameter setting
- Tracing sessions via a logon trigger
To show the loaction of the user_dump_dest, the following command can be used:
Note that some examples include setting a 'tracefile_identifier' to assist with finding the resultant trace output.
show parameter user_dump_dest
- Session Tracing
This tracing can be used where the session is accessible to the user prior to the start of the statement(s) to be traced.
To gather 10046 trace at the session level:
If the session is not exited then the trace can be disabled using:
alter session set tracefile_identifier='10046';
alter session set timed_statistics = true;
alter session set statistics_level=all;
alter session set max_dump_file_size = unlimited;
alter session set events '10046 trace name context forever,level 12';
-- Execute the queries or operations to be traced here --
select * from dual;
exit;
Note that if the session is not closed cleanly and tracing is disabled, then important trace information may be missing from the trace file.
alter session set events '10046 trace name context off';
- Tracing a process after it has started
If trace from an existing session is required then oradebug can be used to attach to the session and initiate 10046 tracing.- The first step is to identify the session to be traced by some means:
For example, in SQL*Plus, start a session to find the OS process id (spid) for the target session:
SPID is the operating system Process identifier (os pid)
select p.PID,p.SPID,s.SID
from v$process p,v$session s
where s.paddr = p.addr
and s.sid = &SESSION_ID
/
PID is the Oracle Process identifier (ora pid) - Once the OS process id for the process has been determined then the trace can be initialised as follows:
Lets assume that the process to be traced has an os pid of 9834.
Login to SQL*Plus as a dba and execute the following:
Remember to replace the example '9834' value with the actual os pid.
connect / as sysdba
oradebug setospid 9834
oradebug unlimit
oradebug event 10046 trace name context forever,level 12
In this case the PID (Oracle Process identifier ) would be used (rather than the 'SPID') and the oradebug text would change to:
Remember to replace the example '9834' value with the actual ora pid.
connect / as sysdba
oradebug setorapid 9834
oradebug unlimit
oradebug event 10046 trace name context forever,level 12
To disable oradebug tracing once tracing is finished:
Alternatively you can use the DBMS_SUPPORT package to trace sessions.
oradebug event 10046 trace name context off
To install the DBMS_SUPPORT package see: Note 377204.1 How to Install the DBMS_SUPPORT Package
To set session tracing using the DBMS_SUPPORT package:
SID is the Oracle Session ID for the session that is to be traced.
exec DBMS_SUPPORT.START_TRACE_IN_SESSION( &SID, &Serial, waits=>true, binds=>true )
To disable the tracing use:
exec DBMS_SUPPORT.STOP_TRACE_IN_SESSION( &SID , null )
- The first step is to identify the session to be traced by some means:
- Instance wide tracing
This setting will trace every session that is created after the parameter is set. Existing sessions will not be traced.
Setting system-wide 10046 tracing can be useful for scenarios where a problem session is known to occur but cannot be identified in advance.
In this situation, tracing can be enabled for a short period of time, the problem can then be reproduced and tracing disabled and the resultant traces searched for evidence of the problem.
System-wide tracing can be enabled as follows:
The setting can be disabled in all sessions by using the following command:
alter system set events '10046 trace name context forever,level 12';
alter system set events '10046 trace name context off';
- Initialisation parameter setting
This setting will trace every session in the instance when it is restarted.
The setting can be disabled by removing the parameter and restarting the instance or by using an alter system command as follows:
event="10046 trace name context forever,level 12"
alter system set events '10046 trace name context off';
- Via a Logon Trigger
There may be some situations where it is necessary to trace the activity of a specific user. In this case a logon trigger could be used.
An example is provided below:
CREATE OR REPLACE TRIGGER SYS.set_trace
AFTER LOGON ON DATABASE
WHEN (USER like '&USERNAME')
DECLARE
lcommand varchar(200);
BEGIN
EXECUTE IMMEDIATE 'alter session set statistics_level=ALL';
EXECUTE IMMEDIATE 'alter session set max_dump_file_size=UNLIMITED';
EXECUTE IMMEDIATE 'alter session set events ''10046 trace name context forever, level 12''';
END set_trace;
/
Note 41634.1 TKPROF and Problem Solving
Note 214106.1 Using TKProf to compare actual and predicted row counts
Note 32951.1 Tkprof Interpretation
Note 75713.1 Important Customer information about using Numeric Events
Note 21154.1 EVENT: 10046 "enable SQL statement tracing (including binds/waits)"
Note 258418.1 Getting 10046 Trace for Export and Import:
Note 242374.1 Tracing PX session with a 10046 event or sql_trace
Note 171647.1 Tracing Oracle Applications using Event 10046
Note 1058210.6 How to Enable SQL_TRACE for Another Session Using Oradebug
Note 224270.1 Trace Analyzer TRCANLZR - Interpreting Raw SQL Traces with Binds and/or Waits generated by EVENT 10046
Note 377204.1 How to Install the DBMS_SUPPORT Package
Note 62294.1 The DBMS_SUPPORT Package.
Note 62160.1 Tracing Sessions in Oracle
10g Startup upgrade shows ORA-00604 ORA-00942 in alert log
Errors in file $ORACLE_HOME/admin/$TWO_TASK/bdump/$TWO_
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist
To get more details about which table was missing we put in this line in the init.ora file:
event="942 trace name ERRORSTACK level 3"
An additional trace file was generated which gave us this detail:
ORA-00942: table or view does not exist
Current SQL statement for this session:
delete from javaobj$ where obj#=:1
Usually all objects with a $ suffix are owned by SYS.
SQL> desc sys.javaobj$
ERROR:
ORA-04043: object javaobj$ does not exist
So the error was coming because javaobj$ did not exist.
We checked in other 9i databases and found that javaobj$ did not exist there too. But a describe on 10g databases found the javaobj$"
SQL> desc sys.javaobj$
Name
---------------------------------------
OBJ#
AUDIT$
Further research led me to metalink note 316889.1 Complete checklist for manual upgrades to 10gR2. Step 20 in that note says:
- Set the COMPATIBLE initialization parameter to an appropriate value. If you are upgrading from 8.1.7.4 then set the COMPATIBLE parameter to 9.2.0 until after the upgrade has been completed successfully. If you are upgrading from 9.2.0 or 10.1.0 then leave the COMPATIBLE parameter set to it's current value until the upgrade has been completed successfully. This will avoid any unnecessary ORA-942 errors from being reported in SMON trace files during the upgrade (because the upgrade is looking for 10.2 objects that have not yet been created)
The compatible parameter was set to 10.2.0 in the init.ora file. That's why even though the database was still in 9i, it was looking for objects present in 10g. However since this error could be ignored, I advised the team doing the upgrade to go ahead and complete the upgrade. I also asked them to update their installation document to set the compatible parameter to 10.2.0 only after the upgrade is over, so that they do not witness this issue in further iterations.
Solaris NIC speed and duplex settings
http://www.brandonhutchinson.com/Solari
The site is a goldmine of unix gotchas. This is the description of the site: "The purpose of this Web site is to document "lessons learned" as a Senior UNIX Systems Engineer for an application services provider in Minneapolis, MN. It contains notes that I wrote for my own and co-workers' reference; these notes may benefit others working on the same problems"
I am reproducing the article from google cache as it is not visible to me anymore:
Solaris NIC speed and duplex settings
The following is a Bourne shell script I wrote to determine the speed and duplex settings for all active network interfaces on a Solaris system. Thanks to William Favorite for fixing the script to work with two-letter network interfaces (e.g. ge0), and to Royce Williams for providing a patch to exclude subinterface information.Download the script.
Example output:
Interface Speed Duplex
--------- ----- ------
hme0 100 Mbit/s full
hme1 100 Mbit/s full
hme2 100 Mbit/s full
Setting NIC speed and duplex
Solaris is often unable to correctly auto-negotiate duplex settings with a link partner (e.g. switch), especially when the switch is set to 100Mbit full-duplex. You can force the NIC into 100Mbit full-duplex by disabling auto-negotiation and 100Mbit half-duplex capability.Example with hme0:
1. Make the changes to the running system.
# ndd -set /dev/hme adv_100hdx_cap 0
# ndd -set /dev/hme adv_100fdx_cap 1
# ndd -set /dev/hme adv_autoneg_cap 0
2. Make kernel parameter changes to preserve the speed and duplex settings after a reboot.
# vi /etc/system
Add:
# set hme:hme_adv_autoneg_cap=0
# set hme:hme_adv_100hdx_cap=0
# set hme:hme_adv_100fdx_cap=1
Note: the /etc/system change affects all hme interfaces if multiple NICs are present (e.g. hme0, hme1).
More information:
http://www.science.uva.nl/pub/solaris/solaris2/Q4.13.html
The /etc/system settings listed above are not supported for configuring ce Ethernet adapters during system startup; you may either use ndd commands in an /etc/rc?.d script or create a /platform/sun4u/kernel/drv/ce.conf file with appropriate settings.
Example: /etc/init.d/nddconfig
#!/bin/sh
ndd -set /dev/ce instance 0
ndd -set /dev/ce adv_1000fdx_cap 0
ndd -set /dev/ce adv_1000hdx_cap 0
ndd -set /dev/ce adv_100fdx_cap 1
ndd -set /dev/ce adv_100hdx_cap 0
ndd -set /dev/ce adv_10fdx_cap 0
ndd -set /dev/ce adv_10hdx_cap 0
ndd -set /dev/ce adv_autoneg_cap 0
# ln -s /etc/init.d/nddconfig /etc/rc2.d/S31nddconfig
$ dmesg | grep ce0
Jan 20 11:05:01 crmmdb22 genunix: [ID 611667 kern.info] NOTICE: ce0: xcvr addr:0x01 - link up 100 Mbps half duplex
Jan 20 11:05:15 crmmdb22 genunix: [ID 408822 kern.info] NOTICE: ce0: no fault external to device; service available
Jan 20 11:05:15 crmmdb22 genunix: [ID 611667 kern.info] NOTICE: ce0: xcvr addr:0x01 - link up 100 Mbps full duplex
Manually determining NIC speed and duplex
If you have ce or bge interfaces, use kstat ce and kstat bge, respectively, to return NIC settings. All other interfaces may use ndd to determine NIC settings.ndd example with hme0, assuming "instance" is 0:
# ndd -get /dev/hme link_mode
Interpretation:
0 -- half-duplex
1 -- full-duplex
# ndd -get /dev/hme link_speed
Interpretation:
0 -- 10 Mbit
1 -- 100 Mbit
1000 -- 1 Gbit
To query a different NIC, such as hme1, set the "instance" to 1, and then perform the link_mode and link_speed queries above.
# ndd -set /dev/hme instance 1
Note: the ndd commands above must be run as root. Otherwise, you will receive errors such as "couldn't push module 'hme0', No such device or address."
ce Ethernet adapters
Older versions of the Sun GigaSwift Ethernet 1.0 driver do not support the ndd link_mode and link_speed parameters. You may either install the latest Sun GigaSwift Ethernet adapter patch (111883) or you may use kstat ce ce_device to get speed and duplex information for ce Ethernet adapters.For example (from http://www.samag.com/documents/s=9142/sam0405l/0405l.htm):
$ netstat -k ce | egrep 'link_speed|link_status|link_duplex'
Interpretation:
link_up - 0 down, 1 up
link_speed - speed in Mbit/s
link_duplex - 1 half duplex, 2 full duplex, 0 down
Host/link partner mismatch example
A large number of output errors or collisions may indicate a host and link partner mismatch. The following is netstat -in output from a system configured for 100 half-duplex while the switch was configured for 100 full-duplex.Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue
ce0 1500 192.168.1.0 192.168.1.1 2707133478 25 2895422910 142310052 182856975 0
In this example, the switch was configured for 100 half-duplex and the system was configured for 100 full-duplex. Note the percentage of Ierrs/Ipkts (~ 1.7%).
Name Mtu Net/Dest Address Ipkts Ierrs Opkts Oerrs Collis Queue
qfe1 1500 10.0.0.0 10.0.0.3 1430247 24663 1779341 0 0 0
CHANGELOG
2007/07/10 -- Added e1000g interfaces2006/11/29 -- Added dmfe interfaces, fixed bge and ce interfaces, many other modifications and fixes.
2006/04/27 -- Solaris 7 and earlier include subinterface information with netstat -i. Patch by Royce Williams to only query physical NIC interfaces.
2006/03/09 -- Fixed bge interfaces, added support for iprb interfaces, added "support" for le interfaces, modified script to only require root access if using /usr/sbin/ndd to determine NIC speed and duplex settings
2005/05/25 -- Fixed ce interface handling.
2004/09/15 -- Added support for ce and bge interfaces.
The script to show the NIC settings is available on http://www.brandonhutchinson.com/speed_