How to configure Tomcat to serve image files from custom folder or NFS Share.

You can use to Tomcat to serve images, PDF, xls, docx from the custom directory. In our case, we used centralized NFS share to serve images to our custom Apex Applications.

Here is the how

Add a <context> to the tomcat/conf/server.xml file.

Windows example:
<Context docBase=”c:\Documents and Settings\The User\images” path=”/images” />

Linux example:
<Context docBase=”/var/project/images” path=”/images” />

Example of Server.xml (trimmed):

<Server port=”8025″ shutdown=”SHUTDOWN”>

<Service name=”Catalina”>

<Engine name=”Catalina” defaultHost=”localhost”>

<Host appBase=”webapps”
autoDeploy=”false” name=”localhost” unpackWARs=”true”
xmlNamespaceAware=”false” xmlValidation=”false”>

<Host name=”localhost” appBase=”webapps”
unpackWARs=”true” autoDeploy=”true”>

<!–Custom Images Directory–>
<Context docBase=”/nfsshare/custom/images” path=”/images” />


Now, you should be able to pull files (e.g. /nfsshare/custom/images/TestImage.jpg) as http://localhost:8080/custom/images/TestImage.jpg



Goods and Services Tax (GST)


GST is a destination-based tax that will replace the current Central taxes and duties such as Excise Duty, Service Tax, Counter Vailing Duty (CVD), Special Additional Duty of Customs (SAD), Central Charges & Cesses and Local State Taxes, like Value Added Tax (VAT), Central Sales Tax (CST), Octroi, Entry Tax, Purchase Tax, Luxury Tax, Taxes on lottery, betting and gambling, state cesses and surcharges and Entertainment tax (other than the tax levied by the local bodies).

It will be a dual levy with State/Union territory GST and Central GST. Moreover, inter–state supplies would attract an Integrated GST, which would be the sum total of CGST and SGST/UTGST.

Consensus between Central and state governments has been reached on four-tier rate structure as follows (published by GST Council):


Following 3 new tax types got proposed in GST:

CGST (Central Goods and Services Tax)
SGST (State Goods and Services Tax)
IGST (Integrated Goods and Services Tax)


GST Rates are based on Revenue Neutral Rates. Following are the proposed rate types and the rates are not yet finalized as on the blog posted date:

  1. Merit rate => For essential goods and services.
  2. Standard rate => For goods and services in general.
  3. Special rate => For precious metals and for specified goods and services.
  4. Zero rate => For exports, supply to EOU/SEZ etc.

Goods and Services outside the purview of GST:

  • Alcohol for Human consumption =>  will continue with State Excise and VAT
  • Electricity => will continue with Electricity Duty
  • Petroleum Products => will continue with the current tax structure, likely to be brought under GST regime later
  • Tobacco products expected to be taxed under the GST regime along with Excise dutyGoods and Service Tax

As we nearing the implementation date of July 1st, 2017, it’s very critical for companies who have operations in India to accommodate GST changes in their Oracle ERP systems to be compliance.

Oracle provided phased approach for implementing GST

GST development execution is being phased to accelerate delivery and to enable early access

Phase 1 – GST infrastructure:  dev complete and available through early access program for customers and partners starting in November 2016.

Phase 2 – GST model law and transition capabilities: enhancements based on the draft GST Model Law published in June 2016 and updated in November 2016, and infrastructure to support the transition from the current tax regime to GST

Phase 3 – Final GST requirements: additional requirements that may come in final specifications published by the government that cannot be addressed by functionality delivered in phase 1 and 2. This phase may or may not be needed as it is entirely dependent on what late specification changes may or may not come from the Government of India.

The India GST patch will be available for EBS release version 12.1.1 onwards.  GST patch will work for all EBS versions that are on premier or extended support as of the date of the release of patch (e.g. 12.1.x and 12.2.x).  It will not be available for any release versions that are in sustaining support (e.g. 11.5.10).

There are major functional and design changes for the GST solution.  Some of that includes: unified regime to rate flow for every tax type with user configurable tax types, date effective tax computation logic, user configurable taxable events, tax defaulting logic based on user configurable rules, major process changes for input tax credit management, and unified tax repositories, etc.

Phase 3 (Final patches) – For DBA

GST: Phase 3 Approach to Final Release – Patch Details (Doc ID 2268465.1)


  1. India GST functional patch
  2. TDS migration patch(This patch will migrate the TDS setup to the new system) – Attached TDS Migration Steps Document(OFI-GST- TDS Migration.pdf)
  3. TCS Migration Patch
  4. GST Enablement  patch
  5. TDS Enablement patch + Concurrent Program for Migrating the TDS Transactions
  6. TCS Enablement patch
  7. RUP Patches

Steps to follow:

Step1 – Clone target environment from Prod
Step 2 – Apply India GST functional patch
Step 3 – Apply TDS Migration Patch
Step 4 – Apply TCS Migration Patch
Step 5 – Test for transaction with existing IL regime and do GST setups
Step 6 – Once Testing done, apply GST Enablement Patch
Step 7 – Apply TDS enablement Patch
Step 8) Apply TCS Enablement Patch
Step 9) Apply Rup7 -Note: GST: Oracle Financials for India (OFI) RUP Patches ( Doc ID 2253455.1 ).
Step 10 – Apply One – Off Patches

For Functional folks, below are GST Oracle Recordings which provides detailed step by step implementation details.

Knowledge Notes

Overview of India GST Knowledge Notes (Doc ID 2192611.1)
E-Business Suite Release 12: India Goods and Service Tax (GST) Info Center (Doc ID 2176820.2)
Oracle Financials for India (OFI) -Goods and Service Tax – Order to Cash Functional Flow (Doc ID 2169197.1)
Oracle Financials for India (OFI) -Goods and Service Tax -Regime to Rate Functional Flow (Doc ID 2189339.1)
India Localization – Oracle Financials for India (OFI) – Goods and Services Tax (GST) Configuration – EBS GST Infrastructure (Doc ID 2190026.1)
Oracle Financials for India (OFI) -Goods and Service Tax -Procure to Pay Functional Flow (Doc ID 2169236.1)
Overview of Tax Computation in Purchase to Pay Transactions with Goods & Service Regime – GST (Doc ID 2169321.1)
Overview of Tax Computation in Order To Cash Transactions with Goods & Service Regime – GST (Doc ID 2169215.1)
Oracle E-Business Suite Release 12: India Goods and Service Tax (GST), August 2016 (Doc ID 2170500.1)

 Oracle Roundtable Series: GST and Oracle E-Business Suite


OPATCH_JAVA_ERROR : An exception of type “OPatchException” has occurred.

OPATCH_JAVA_ERROR : An exception of type “OPatchException” has occurred.

LsInventory: OPatch Exception while accessing O2O
OPATCH_JAVA_ERROR  : An exception of type “OPatchException” has occurred:
OPatch Exception:  OUI found no such ORACLE_HOME set in the environment
  Can not get details for given Oracle Home
  An exception occurs
There is no Interim Patch
OPATCH_JAVA_ERROR  : An exception of type “OPatchException” has occurred:
Can not get a list of inventory on this home.
ERROR: OPatch failed because of Inventory problem.

You get the above error when you try to do “Opatch lsinventory” or Path for Oracle Home is not listed under the drop down when you try to install using OUI (Oracle Universal Installer).

Cause: ORACLE_HOME (10.1.2) or (10.1.3) not exists in the central Inventory.

Solution: Attach (10.1.2) and (10.1.3) ORACLE_HOME to Inventory.

[applmgr@uswodapp008 ~]$ cd $ORACLE_HOME/oui/bin
[applmgr@uswodapp008 bin]$ pwd
./runInstaller -silent -attachHome ORACLE_HOME=/ebprd/appl/product/10.1.2/oui/bin ORACLE_HOME_NAME=prd_1012_home
…AttachHome’ was successful
[applmgr@uswodapp008 ~]$ cd $IAS_ORACLE_HOME/oui/bin
[applmgr@uswodapp008 bin]$ pwd
./runInstaller -silent -attachHome ORACLE_HOME=/ebprd/appl/product/10.1.3/oui/bin ORACLE_HOME_NAME=prd_1012_home
…AttachHome’ was successful

Now you should be able to run “Opatch lsinventory” or See the Oralce_Home installation path under OUI install.

Oracle EBS SOA Gateway testquery does not return “TEST RESPONSE” or get HTTP 404 Not Found error.

Oracle EBS SOA Gateway testquery does not return “TEST RESPONSE” or get HTTP 404 Not Found error.


Checking to see SOA gateway working as expected, Oracle document notes Test Web Service URL to check. (Installing Oracle E-Business Suite Integrated SOA Gateway, Release 12.1.3 (Doc ID 556540.1)


If it returns <testresponse>, then the setup is performed successfully and working as expected.

If you got no response page when testing with “http://server_name:port/webservices/SOAProvider/?testquery”, please check the following.

Verify ASADMIN application user is unlocked and password is working.

Check and confirm password of ASADMIN under $ORA_CONFIG_HOME/10.1.3/j2ee/oafm/config/system-jazn-data.xml.


                                <display-name>Default Apps SOA User</display-name>
                                <description>Used by SOAProvider for DB connection</description>

 Note: The password should be preceded by a ‘!’ (Exclamation) so that when OAFM is started, it gets encrypted. For example, if your password is ‘welcome’, then you should write it in the above file as “!welcome”.

Verify that ASADMIN EBS User for ISG and XML Gateway JDBC Connections to the Database is Correctly Implemented. (Doc ID 1089197.1)

  • After correcting the password, bounce oc4j OACORE and OAFM process
  • Clear Global Cache

Login as sysadmin >Functional Admin responsibility> Core Service> Caching Framework>Global Config> Click on Clear Cache


You won’t be able to see the password as it will be encrypted.

select user_name, ENCRYPTED_FOUNDATION_PASSWORD , ENCRYPTED_USER_PASSWORD from fnd_user where user_name = ‘ASADMIN’;

You can check to see if the password is working by executing below.

SQL> select fnd_web_sec.validate_login(‘ASADMIN’,’asadminpw123′) from dual;

Now try the Test Webservice URL. If still errors. Check the ASADMIN role using below query. 

SQL> select role_name from wf_user_roles where user_name=’ASADMIN’;


 SQL> select role_name from wf_user_role_assignments where user_name=’ASADMIN’;


If results missing for any of the queries above. Run the ‘Workflow Directory Services User/Role Validation‘ concurrent program to grant the role.

Batch Size : 10000
User Name : ASADMIN
Fix dangling users : Yes
Add missing user/role assignment : Yes
Update WHO Columns in WF Tables : No

Test Webservice URL.


How to clear Middle Tier cache in R12

Go to “Functional Administrator” responsibility à Select “Core Services” (If missing, assign ‘Functional Administrator’ responsibility to your account)



Select “Caching Framework
Select “Global Configuration
Now click on “Clear cache
Click on “Yes” button to confirm
Click on “Apply” button to clear the cachec3.jpg


 Source: How to Clear the Cache Using Functional Administrator? (Doc ID 759038.1)

 Note: If you have removed the _pages manually and are facing login issue that’s blank screen.
Use the perl script to perform a manual pre-compilation of the JSP pages.The following command will compile all the JSP pages and build up the JSP cache again.
            perl $FND_TOP/patch/115/bin/ –compile –flush -p 2
This utility is also used by the AD utilities to perform this action such as when patches are applied that replace one or more JSP pages

See Note: JSP Pages Hanging in R12 After Removing Cached Class Files in _pages (Doc ID 433386.1)

Passwordless SSH connection setup between Linux Nodes

What is SSH: Secure Shell (SSH) is an open source cryptographic network protocol for operating network services securely over an unsecured network. The best-known example application is for remote login to computer systems by users. SSH provides a secure channel over an unsecured network in a client-server architecture, connecting an SSH client application with an SSH server.

What is SSH-KEYGEN: ssh-keygen is a standard component of the Secure Shell (SSH) protocol suite found on Unix and Unix-like computer systems used to establish secure shell sessions between remote computers over insecure networks, through the use of various cryptographic techniques. The ssh-keygen utility is used to generate, manage, and convert authentication keys. ssh-keygen is able to generate a key using one of three different digital signature algorithms.

Test Case: In our example, we will setup SSH password-less automatic login from server user1@tstserver001 to server user2stserver002
SSH Client: user1@tstserver001
SSH Remote Host: user2stserver002

  1. Frist attempt to log in without setting up SSH keys, we will be prompted for the password.



Now let’s create a SSH Key on user1@tstserver001


 Now that our Public Key has been created (/home/user1/.ssh/, we can now upload that to any node to setup Password-less connection.

2. Create .SSH directory on user2@tstserver2 if it doesn’t exist.


3. Upload and append the Public Key ( on server user2@tstserver2


4. Set Permissions on Remote Host (user2@tstserver002)



  • Alternate ways to do Step 3 and 4, you also Secure Copy the Public Key ( file and then append.ssh6.jpg

5. Test Logging in from [user1@tstserver001]$ to [user2@tstserver002]

From now, you can log in to [user2@tstserver002] from [user1@tstserver001] without the password.



How to enable Diagnostics in Oracle Applications R12

Users may not able to able to see Help >Diagnostics option or get an error “Function Not Available to this Responsibility. Please check with your system administrator.”

These profiles need to be set at user level. So specific user can access this functionality (ex. Support folks/Developers)

Navigation: Go to System Administrator responsibility
Profile> System

Profile Option Name: Utilities:Diagnostics
User Level: Yes


Profile Option Name: Hide Diagnostics menu entry
User Level: NO

Save changes
Have user logout of Oracle Application and login again

User should be able to access Help >Diagnostics Menu