Wednesday, May 14, 2008

Some facts About R12 OAF techstack

As Applications R12 is maturing and stabilising , we are seeing more and more R12 projects coming up. One prominent question I find very often on Oracle OAF forums as well as e mails, is there any change is relation of OA Framework components development and deployment in R12?? Here is list of some changes which you will come across while working on any R12 project:

1)Apache Jserv is upgraded to OC4J(Oracle Containers for Java) server in R12.

2)How to enable log in R12?Since there is no Jserv as in 11i, there is no more dependency on jserv.properties file for enabling of log.Here are the details how to enable log on R12:
In R12,
Goto $ORA_CONFIG_HOME/10.1.3/opmn/conf
take the backup of opmn.xml
edit opmn.xml for data id="java-options" and add the following:
-DAFLOG_ENABLED=true -DAFLOG_LEVEL=statement
-DAFLOG_MODULE=fnd%
-DAFLOG_FILENAME=/tmp/aflog.txt -Djbo.debugoutput=console


The log message should get written in,
$INST_TOP/logs/ora/10.1.3/opmn/oacore_default_group_1/oacorestd.out


3)How to add custom classpath in OC4J server classpath ?
Add an entry in,


$ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/orion-application.xml

< library path="..."/ >

prepending the existing library path.Modifying orion-application.xml works only if you manually go and modify it. But whenever we run autoconfig orion-application.xml is generated again and it does not have the custom jar files which we had specified.
In case you need to permanently add a custom classpath to the OC4J instances then you need to update the template file

$FND_TOP/admin/template/orion_application_xml_1013.tmp
There would be some set of entries with tags like
< library path="%s_oacore_prepend_classpath%" />
< library path="%s_javatop%" />
< library path="%s_af_jlib%/ojdigsig.zip" />
< library path="%s_oacore_append_classpath%" />
< library path="%s_weboh_oh%/j2ee/forms/applications/forms/formsweb/WEB-INF/lib/frmsrv.jar" />
< library path="%s_tools_oh%/forms/java/frmxlate.jar" />
< library path="%s_weboh_oh%/j2ee/oafm/applications/mapviewer/web/WEB-INF/lib/mvclient.jar" />




you can add your custom path like this after all the existing library path entires

where /abc/xyz/classpath.jar is the path for your custom libraries



4)Autocompilation setting of jsp files in R12.
In file
$INST_TOP/ora/10.1.3/j2ee/oacore/application-deployments/oacore/html/orion-web.xml

afterwards please restart apache
$ADMIN_SCRIPTS_HOME/adapcctl.sh stopall
$ADMIN_SCRIPTS_HOME/adapcctl.sh startall
now, whenever you change a character in your jsp, this will immediate reflect your output. In production environments this setting is not recommended.


4)Steps for Manual compilation of jsp in R12.
> cd $FND_TOP/patch/115/bin
> ojspCompile.pl --compile -s hello.jsp


5) Why R12 uses two Oracle homes in ?
There is an interesting article on Steven Chan's blog on this which explains y Oracle introduced 10.1.3 and 10.1.2 both in R12 Application server archietecture:
Why Use Two ORACLE_HOMEs for Release 12's Application Tier?


6)DBC file location in R12:
$INST_TOP/appl/fnd/12.0.0/secure

7)Bouncing OC4J server, for OAF to pick latest class and xml files.
In R12, there are two scripts which need to run to bounce the HTTP server and make OC4J container pick latest class files instead of one as in 11i, we only need to run adapcctl.sh shell script to bounce Apache Jserv.

Since in R12 Jserv is replaces by OC4J container, we need to run two scripts:
1)Script which is responsible for bouncing Oracle HTTP Server (powered by Apache).(adapcctl.sh)
2)Script which responsible for bouncing OC4J container (adoacorectl.sh)

So basically, here is the sequence of steps you need to do :
1)adapcctl.sh stop
2)adoacorectl.sh stop
3)adapcctl.sh start
4)adoacorectl.sh start
All these scripts are in $ADMIN_SCRIPTS_HOME

9 comments:

Unknown said...

Hi Mukul
Good info
In 11i depending on your RUP level you would have had to bounce apache for making a profile option change effective or a OA FWK page display properly (after changes are made).
Do you know which changes in R12 dont require apache bounce (for example profile option change in R12 or actually starting 11i.RUP6) does not require apache bounce, I am trying to determine what are other such changes that dont require apache/adoacore (oc4j) bounce in R12 and would work by just logging out and logging in.

Thank you
Sarves

Mukul Gupta said...

You can simple use Functional Administrator > clear cache and that will refrech your AOL objects in APPS like menus, profile etc.

--Mukul

Krishna T said...

Hi Mukul,

Nice article.

How is a user session affected if the OA core is bounced and the user is working on an OA page.

Thanks,
Krishna

Unknown said...

Hi mukul,

We are facing performance issues on R12 , daily my client complianing
that performance issue. (11.1.0.7.0 -database , R12.1.3-
application===single node)

1) Regular basis we run gather schema

2)Clearing the apache logs which are older than one month.

3)Is it possible to remove repots cache, because it is occupied 25G.
If possible pls explain how to remove.





Also temptablespace always showing 100 mb free , after bounch instance
it will not be free. wt should we do for that, also we have temp2
tablespace with 6gb.
Temp space is 27 Gb, i think that much space not required.

Please clarify my doubts if possible.

Thanks & Regards,
NAG

Unknown said...

Hi mukul,

We are facing performance issues on R12 , daily my client complianing
that performance issue. (11.1.0.7.0 -database , R12.1.3-
application===single node)

1) Regular basis we run gather schema

2)Clearing the apache logs which are older than one month.

3)Is it possible to remove repots cache, because it is occupied 25G.
If possible pls explain how to remove.


Also temptablespace always showing 100 mb free , after bounch instance
it will not be free. wt should we do for that, also we have temp2
tablespace with 6gb.
Temp space is 27 Gb, i think that much space not required.

Please clarify my doubts if possible.

Thanks & Regards,
nag

Badri Lakkoju said...

How to find list of customizations oaf pages in one instance

Unknown said...

Hello Mukul,

can you let us know the bounce process in r12.2.2. My Changes are not reflecting after bouncing web server.

Do I need to bounce the web logic server if so please let me know the process.

Santosh said...

Fantastic , I could resolve the issue related to ClassDefNot Found for
oracle.apps.fnd.framework.OAException: oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NoClassDefFoundError, msg=jxl/read/biff/BiffException
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:896)
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:872)
at _OAErrorPage._jspService(_OAErrorPage.java:221)
........

by adding the jxl-2.6.jar file with full path with entry

oraclefusion said...

I have been searching for this kind of stuff for very long time finally i got it thanks for sharing.
CALFRE