All posts by jhlui1

http://www.google.com/#hl=en&q=james H. lui

How To Get Those Customizations to Work Correctly with Oracle EBS R12.2 Editioning (EBR)

Oracle e-Business Suite R12.2 Overview of Edition-Based Redefinition (EBR) in 11gR2 databases.
Oracle e-Business Suite R12.2 Overview of Edition-Based Redefinition (EBR) in 11gR2 databases.

Scenario:
Creating a new view based upon the AP.AP_SUPPLIERS table to reside in a new XXCUSTOMSCHEMA.

If you attempt the simple:

create or replace force view XXCUSTOMSCHEMA.AP_SUPPLIER_NEW_V
as
SELECT *
FROM ap.ap_suppliers ;

It works, but your data and table definition may change whenever patching editions are in-play.

If you attempt to just reference the editioned object instead:

create or replace force view XXCUSTOMSCHEMA.AP_SUPPLIER_NEW_V
as
SELECT *
FROM ap.ap_suppliers# /* or the preferred apps.ap_suppliers synonym */

You will receive the ominous ORA-38818: illegal reference to editioned object error message.

What’s missing? The XXCUSTOMSCHEMA isn’t recognized as an edition-friendly schema by Oracle’s e-Business Suite (nor the database), yet.

Create your XXCUSTOMSCHEMA in the usual way:

create user XXCUSTOMSCHEMA
identified by (password)
default tablespace USERS
temporary tablepace TEMP
profile DEFAULT
account UNLOCK;

/* as APPS user */

exec FND_ORACLE_USER_PKG.LOAD_ROW(‘XXCUSTOMSCHEMA’, ‘CUSTOM’, ‘INVALID’, NULL, ‘N’, ‘B’);

/* as SYSTEM user */

alter session set current_schema=APPS;
exec AD_ZD_PREP.ENABLE_CUSTOM_USER(‘XXCUSTOMSCHEMA’);

/* Create your SELECT grants to the editioned objects as APPS user */

grant select on ap.ap_suppliers#  to XXCUSTOMSCHEMA;

/* Create your custom view referencing the APPS synonym – which points to the editioned object */

create or replace force view XXCUSTOMSCHEMA.AP_SUPPLIER_NEW_V
as
SELECT *
FROM apps.ap_suppliers ;

This is the same process when creating procedures and functions with the usual caveat that unless it’s a 12c database, you cannot create materialized views on the editioned objects.

For the 11gR2 EBS users, you would stick with the existing non-editioned table object reference:

CREATE MATERIALIZED VIEW APPS.XXAP_SUPPLIER_NEW_MV
(
vendor_id,
vendor_name
)
AS
SELECT aps.vendor_id, aps.vendor_name
FROM ap.ap_suppliers aps;

/* The owning schema for the materialized view must have CREATE TABLE, VIEW AND INDEX privileges on the destination tablespace */

2017-02 Shinnyo-en Buddhism Introductory

2017-02 Shinnyo-en Buddhism Introductory Podcast – Prayer Beads http://ow.ly/F8W2509sxDV

2017-02 Shinnyo-en Buddhism Introductory Podcast – Prayer Beads

2017-02 Shinnyo-en Buddhism Introductory Podcast – Prayer Beads

  • Beads, Beads, and More Beads
  • The Shingon 108-bead Version
  • Symbolic Meaning
  • Practical Use
  • A Circle of Life


Subscribe to this Podcast (RSS) or iTunes

Bing Search - prayer beads
Various kinds of prayer beads

Prayer beads – in some cultures called “worry beads” as having something in the hand to hold, whether another person’s hand, or a string of objects, has always brought a psychological comfort to the holder.

In buddhism, you tend to see them all over the place – people holding them in their hands, a bracelet on the wrist, a string of beads hanging from their forearm, a pile of beads on an altar, someone holding up the beads in front of the altar doing something with them in mid-air. You won’t see them worn around the neck as jewelry, nor tossed around like Mardi Gras bangles. They seem to have another purpose. What could that be?

Bing Search - Shingon prayer beads
Shingon Buddhist prayer beads – different styles.

For further purposes of simplicity, the kinds of prayer beads I’ll be referring in this introduction will be the basic bead sets used by the Shingon esoteric sects.  The strand has 108 beads in the circle, divided in two semi-circles by a set of tassels at either end of the loop.  One tassel has an extra bead (often referred to as the Mother bead) on it.  Counting in from that extra beaded tassle, there are 7 beads, followed by a different kind of bead, followed by 14 more beads, and a different bead, then 33 more beads until the other tassel. Each tassel also has 5 beads (not counting the Mother bead) on it, with a single different bead before the fluffy or ball end of the tassel.  They can be made of many different materials, though natural ones are the most preferred (glass, wood, stone, marble, etc.)

There are two basic explanations beyond the “comforting thing to hold” idea for the purpose of the beads. One is symbolic or esoteric, representing the many different things affecting humans. In this version, the 108 beads represent human life problems and struggles.  Zen buddhism has an interesting specificity in their definition by multiplying the six senses (sight, hearing, touch, taste, smell, and mind) by the six physical sources of sense (eyes, ears, body, tongue, nose, and brain.) This results in 36 combinations, half of which are positive, and half negative impressions. Multiplying these 36 by the past, present and future positions in time in which they may occur, leads us to the 108 delusions of attachment (or things we should be apologetic for during our path to enlightenment.)

The other is a more functional or technical explanation – counting. There are many basic actions requiring repeating 3 times (bows, chants, prostrations, etc.) which are easy enough to count by yourself. But getting to 5, 7, 21, 33 or 100 times of anything, can find you spending more energy or thought trying to remember how many you just did, rather than being immersed in the action of what you’re supposed to be doing. That’s when holding the beads in one hand while incrementing one bead each time you do something, makes it easy to physically keep track of how many actions you just performed.  Simple, practical and something that won’t break your concentration or focus.

A final more psychological use is that of representation. The beads represent a reminder to be mindful of the many ways in which we as humans stray from our own paths of peace. We take care to remember that not only do we individually have all of these perceptions that lead us towards polarized emotions, but so does everyone else around us. To remember that each of us has an innate need for peace and tranquility, is to also find ways to cultivate that same awareness in others.
/* That’s it for this session. Thank you for listening. For more information feel free to e-mail me at jlui at jlui dot net, or twitter @jhlui1 With Gassho, James*/

2017-01 Shinnyo Podcast Peace Through St

2017-01 Shinnyo Podcast Peace Through St – 2017-01 Shinnyo Podcast Peace Through Strength – 2017-01 Shinnyo Podcast Peace Through Strength Contradiction A Strong Fence Has Two Sides Fear Builds Walls The Middle Way Subscribe to this Podcast (RSS) or iTunes or via Flipboard There is often confusion about what we think is a stereotype of a buddhist monk – shaven head, wearing … Continue reading 2017-01 Shinnyo Podcast Peace Through St → http://ow.ly/fdHr508Xfec

2017-01 Shinnyo Podcast Peace Through St

2017-01 Shinnyo Podcast Peace Through Strength – 2017-01 Shinnyo Podcast Peace Through Strength Contradiction A Strong Fence Has Two Sides Fear Builds Walls The Middle Way Subscribe to this Podcast (RSS) or iTunes or via Flipboard There is often confusion about what we think is a stereotype of a buddhist monk – shaven head, wearing robes, poor in material but rich in … Continue reading 2017-01 Shinnyo Podcast Peace Through Strength → http://ow.ly/D86e5087onP

2017-01 Shinnyo Podcast Peace Through Strength

2017-01 Shinnyo Podcast Peace Through Strength

  • Contradiction
  • A Strong Fence Has Two Sides
  • Fear Builds Walls
  • The Middle Way

Subscribe to this Podcast (RSS) or iTunes or via Flipboard

A dandelion grows through a brick path - Bernhard Kreutzer/Getty Image
A dandelion grows through a brick path – Bernhard Kreutzer/Getty Image

There is often confusion about what we think is a stereotype of a buddhist monk – shaven head, wearing robes, poor in material but rich in spirit, etc. And then we hear of monks fighting for rights in Myanmar, Shaolin monks training in martial arts for decades, and armed monks in Thailand and ask ourselves, “Where’s this violent behavior found on the road to Nirvana?”

Back in the 1980’s, one of the common catch-phrases in the aerospace/defense industry brought about during the Cold War years was the concept of “Peace Through Strength.” The idea was that by having or possessing technology or weaponry which instilled fear in your opponent that the entire notion of committing an act of aggression would be dissuaded by the immediate and present fear of losing the confrontation (the premise of Mutually Assured Destruction). Then we further escalated the tension by envisioning “First Strike” capability, wherein upon even the threat of a potential nuclear conflict, we’d simply launch first. But what if we disable their ability to launch, then we’ve truly won? What if they disable our ability to disable them first? This rather nauseating discussion continues even today.

But let’s examine the behavior on a much more local scale, what keeps a potential burglar from entering your home?  An obvious security system?  A strongly locked front door? A loudly barking dog? Think about the situation from the perspective of the thief. Seeking the path of least resistance is common human behavior, even in the most monumental efforts. Each form of deterrence presents a form of resistance – another boulder in the stream. Some thieves may be deterred by strong evidence of defense, and yet others may be actually attracted with the potential of greater rewards hiding behind an iron curtain of protection. Is what’s in Fort Knox perhaps more valuable than something sitting in an open box on the curb?

A different way of seeing the differences might be comparing a skunk and a domestic cat. When you observe skunks, you might notice they don’t travel very quickly, and are almost casual in their pursuit of food and shelter. The high contrast colors of their fur, and certainly their smell bring an aura of caution and warning to every thing that encounters them..While they have sharp claws and teeth, they rely mostly on intimidation by scent and fluffing out their body and tail fur to make themselves appear bigger, hopefully scaring away a potential predator. Cats by comparison come in a couple of noticeable varieties – those that are quite easily skittish and very wary of approaching anyone or anything, and those that seem to be affectionate to everything and anyone. To a predator, the easy target might be the affectionate kitty, whereas it might avoid entirely going after the skunk.

Is our vision of our perfect existence a world full of skunks, or kittens? Doesn’t it depend a bit on whether you’re a predator, a skunk, or someone seeking companionship?  In the latter case, you might find it much more difficult to make friends with a skunk.  Or not – maybe you’ve lost your sense of smell.

And why would we see “violent” monks? Because we are still human. Yes, even monks. They are still people; people who have fears. Their attachment may be to their faith believing only they can defend properly its teachings or even its existence. Perhaps they are afraid that their example is not sufficient for others to follow. Maybe they believe that by providing a tough exterior it will shield the precious contents from theft or harm.

But re-examine the thief scenario from above – and imagine that you have given up attachment in the sense that you are secure in knowing everything you will ever need to survive and prosper will eventually come back into your life when it is needed. That every challenge you face is an exercise in your ability to adapt to change and apply your creativity and draw upon the strength you have developed by helping others to succeed for themselves. And in this world, we are actually surrounded by both skunks and kittens, and predators, and each plays its own role in everyday life in nature.

The thief who has everything will still always be hungry for more (termed Asuras or hungry spirits). You however, can satiate your desire for more by deciding to view things differently. You can accept that there will always be those that hunger for more. And also accept those who are unbelievably generous. The inner peace will come from wanting nor needing either. Through that peace, you become impenetrable, and thus, strong. Simple concept, but perhaps difficult to achieve.  That’s the many-faceted path of being human.  Try to be thankful for that gift of having a choice.
/* That’s it for this session. Thank you for listening. For more information feel free to e-mail me at jlui at jlui dot net, or twitter @jhlui1 With Gassho, James*/

2016-12 Shinnyo Podcast Regarding Hope –

2016-12 Shinnyo Podcast Regarding Hope – 2016-12 Shinnyo Podcast Regarding Hope What is Hope? Does Hope Go Away? Creating Hope When Is Hope Lost and Found? Subscribe to this Podcast (RSS) or iTunes or via Flipboard If we define hope as wanting, wishing or imagining something that isn’t in our present existence, we could say that hope is an imaginary concept … Continue reading 2016-12 Shinnyo Podcast Regarding Hope → http://ow.ly/rrMa5082Hk0

2016-12 Shinnyo Podcast Regarding Hope

2016-12 Shinnyo Podcast Regarding Hope

  • What is Hope?
  • Does Hope Go Away?
  • Creating Hope
  • When Is Hope Lost and Found?

Subscribe to this Podcast (RSS) or iTunes or via Flipboard

Image of Where There's Life, There's Hope
Where There’s Life, There’s Hope – Courtesy of: http://www.hdnicewallpapers.com/Walls/Big/Thoughts%20and%20Quotes/Beautful_Thought_on_Life_and_Hope_HD_Wallpapers.jpg

If we define hope as wanting, wishing or imagining something that isn’t in our present existence, we could say that hope is an imaginary concept – something that isn’t real.  If we think of hope as a state of consciousness, or the state in which we are visualizing this changed existence, then hope becomes a more tangible idea – something that persists.

The four virtues of enlightenment are expressed as permanence, bliss, self and purity, and in this context, the state of permanence is elusive depending on how we define our concept of hope.  Each of these states is related to embracing the dynamics of change as an ever-present condition. But to also realize that hope becomes ever-present as long as we can imagine a state of improvement beyond where we are today. You give up your imagination, and you can say you gave up hope.

Nature accepts things as they are – whatever happens, happens. People like to change things, like creating clocks to track time instead of watching the sun and moon. We try to move and push our environment around to better suit what we think is easier, more advantageous, or even more efficient.

When facing extreme changes, that’s when humans often resort to despair instead of hope, losing that sense of a better tomorrow. But really, tomorrow is by its own peculiar definition, something that hasn’t happened yet. We may have a less shiny and perfect vision of that which has yet to come, but basically, it still is beyond the present. And until it happens, it’s still not our reality (barring existence in a parallel universe and warpage of time, of course.)

Our reality is how we perceive it. A fish out of water is kind of stressed, and probably certainly not happy about that. But it has relatively little capacity to change its own condition.  We, by comparison, have amazing capability to change our presence, where we are, how we live, and in what manner we decide to co-exist with everything else.  Question is, do you realize that potential?

Hope becomes real as we define and change ourselves, whether that means being content with whatever we have already, or transitioning and developing ourselves to see beyond our self-imposed limitations. In the path of transformation, we materialize our vision or goals into reality.

Looking at the situation in a more pragmatic light might be that we can consider ourselves either “stuck in traffic” or “faced with the opportunity to choose alternate paths to our destination.”  Either way, the traffic is there. It is up to us to figure out how we perceive it and how we deal with it..

My own hope in this case is that you find that hope isn’t something someone else gives you. Hope is what you give to yourself.

I have seen what a laugh can do. It can transform almost unbearable tears into something bearable, even hopeful. –Bob Hope

Read more at: https://www.brainyquote.com/quotes/authors/b/bob_hope.html

/* That’s it for this session. Thank you for listening. For more information feel free to e-mail me at jlui at jlui dot net, or twitter @jhlui1 With Gassho, James*/

Save

Setup and Install the Oracle EBS Integrated SOA Gateway for R12.2.x

https://blogs.oracle.com/ebusinesssuiteintegration
1317697.1Functional Diagram of the Integrated SOA Gateway in Oracle e-Business Suite

Registering the Integrated SOA Gateway included in the Oracle E-Business Suite R12.2.x instances is actually reasonably simple, but the documents make it sound much worse than it really is, simply by being several hundred pages of documentation.

The reason to do this is to expose the RESTful services interface for EBS so that other web applications can do useful things, such as check usernames for validity, lookup business process (workflow) statuses, and even query for completion of processes, such as concurrent programs.  The built-in library of accessable Services is quite vast and enables lots of interconnectivity with other applications.

This is also useful if you happen to be extending the application using the Mobile Application Framework, which allows you to build custom applications for mobile devices that access all the various EBS functionalities.

References:
NOTE:1311068.1 – Installing Oracle E-Business Suite Integrated SOA Gateway, Release 12.2
NOTE:1317697.1 – Oracle E-Business Suite Integrated SOA Gateway Troubleshooting Guide, Release 12.2

Before commencing, have the following prepared:
Unlock the ASADMIN (FND_USER) account and set the password so that it can login without a change password challenge (no expiry. required.
APPS password
Weblogic password
IP Address of ApplTier Host
Ports for ApplTier Host (both base port and WLS console – e.g. 8000 7001)
Your base port is the one in your usual EBS URL and the WLS console URL can be determined via Oracle Application Manager in the Site Map link for Weblogic Administration.
Services will be interrupted by bounce twice (2X) during installation.
Installation takes about 45 minutes to complete.

====================================  Start of SOA Integration Steps
#Register new Internal SOA Gateway Configuration

itsrv33m [/export/home/dbausr/oradev] ant -f $JAVA_TOP/oracle/apps/fnd/txk/util/txkSoaConfigUtility.xml
Buildfile: $COMMON_TOP/java/classes/oracle/apps/fnd/txk/util/txkSoaConfigUtility.xml
checkenvset:
getServerDetails:
[input] Enter Oracle WebLogic Server Administration Console URL (host:port) :
[FQWLSHostname:port]
[input] Enter Oracle WebLogic Server Admin User Name :  [weblogic]
getWLSAdminPasswordUnix:
echoON:
[input] Enter the password for user weblogic :
echoOFF:
getWLSAdminPasswordWindows:
getPasswordUnix:
echoON:
[input] Enter the password for user apps :
echoOFF:
getPasswordWindows:
getASADMINUser:
[input] Enter the ASADMIN user name :  [ASADMIN]
getASADMINPasswordUnix:
echoON:
[input] Enter the password for user ASADMIN :
echoOFF:
getASADMINPasswordWindows:
getSOAServerDetails:
[input] Enter SOA Server  Hostname : (hostname.domain)
[FQEBShostname]
itsrv36m.mwd.h2o
[input] Enter External URL of SOA Suite SOA Managed Server (protocol://managed_server_hostname:managed_server_port) :
http://%5BFQEBShostname%5D:%5Bport%5D

[input] Enter Internal URL of SOA Suite SOA Managed Server (protocol://managed_server_hostname:managed_server_port) :
http://%5BFQEBShostname%5D:%5Bport%5D

[input] Enter External URL of SOA Suite Admin Server (protocol://admin_server_hostname:admin_server_port) :
http://%5BFQWLSHostname:port%5D

commonArgs:
checkRequiredJars:
getDbcFile:
ValidateASADMINConnection:
getJDBCURL:
addASADMINToFNDVault:
[echo] ********************************************************************
[echo]                  Adding/Updating ASADMIN user in fnd_vault
[echo] ********************************************************************
[echo] Connecting to the EBS database using below properties
[echo] User: apps
[echo] JDBC Url: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL=tcp)(HOST=[FQhostname])(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=[$ORACLE_SID])))
[sql] Executing commands
[sql] 0 rows affected
[sql] 1 of 1 SQL statements executed successfully
[echo] Sucessfully Added/Updated ASADMIN in fnd_vault
createUserCredUpdationScript:
executeUserCredUpdationUnix:
[exec]
[exec] CLASSPATH=$CLASSPATH
[exec]
[exec] Initializing WebLogic Scripting Tool (WLST) …
[exec]
[exec] Welcome to WebLogic Server Administration Scripting Shell
[exec]
[exec] Type help() for help on available commands
[exec]
[exec]
[exec] Connecting to server using username:weblogic url:[SOAhost:port]
[exec]
[exec] Connecting to t3://[SOAhost:port] with userid weblogic …
[exec] Successfully connected to Admin Server ‘AdminServer’ that belongs to domain ‘EBS_domain_[ORACLE_SID]’.
[exec]
[exec] Warning: An insecure protocol was used to connect to the
[exec] server. To ensure on-the-wire security, the SSL port or
[exec] Admin port should be used instead.
[exec]
[exec] Creating user ASADMIN
[exec] Sucessfully created user ASADMIN
[delete] Deleting: $INST_TOP/logs/appl/rgf/TXK/updateuser_02_November_2016_08_17_38.py
executeUserCredUpdationWindows:
updateWLSuser:
updateSoaContextVariables:
[echo]  Updating Context Variable s_soa_external_url
[echo]  Updating Context Variable s_soa_internal_url
[echo]  Updating Context Variable s_soa_admin_url
runAutoconfigUnix:
[echo]  Running Autoconfig
[exec] Enter the APPS user password:
[exec]
[exec] The log file for this session is located at: $INST_TOP/admin/log/[session#]/adconfig.log
[exec]
[exec] AutoConfig is configuring the Applications environment…
[exec]
[exec] AutoConfig will consider the custom templates if present.
[exec]     Using CONFIG_HOME location     : $INST_TOP
[exec]     Classpath                   :
[exec]
[exec]     Using Context file          : $CONTEXT_FILE
[exec]
[exec] Context Value Management will now update the Context file
[exec]
[exec]     Updating Context file…COMPLETED
[exec]
[exec]     Attempting upload of Context file and templates to database…COMPLETED
[exec]
[exec] Configuring templates from all of the product tops…
[exec]     Configuring AD_TOP……..COMPLETED
[exec]     Configuring FND_TOP…….COMPLETED
[exec]     Configuring ICX_TOP…….COMPLETED
[exec]     Configuring MSC_TOP…….COMPLETED
[exec]     Configuring IEO_TOP…….COMPLETED
[exec]     Configuring BIS_TOP…….COMPLETED
[exec]     Configuring CZ_TOP……..COMPLETED
[exec]     Configuring AMS_TOP…….COMPLETED
[exec]     Configuring CCT_TOP…….COMPLETED
[exec]     Configuring WSH_TOP…….COMPLETED
[exec]     Configuring CLN_TOP…….COMPLETED
[exec]     Configuring OKE_TOP…….COMPLETED
[exec]     Configuring OKL_TOP…….COMPLETED
[exec]     Configuring OKS_TOP…….COMPLETED
[exec]     Configuring CSF_TOP…….COMPLETED
[exec]     Configuring IBY_TOP…….COMPLETED
[exec]     Configuring JTF_TOP…….COMPLETED
[exec]     Configuring MWA_TOP…….COMPLETED
[exec]     Configuring CN_TOP……..COMPLETED
[exec]     Configuring CSI_TOP…….COMPLETED
[exec]     Configuring WIP_TOP…….COMPLETED
[exec]     Configuring CSE_TOP…….COMPLETED
[exec]     Configuring EAM_TOP…….COMPLETED
[exec]     Configuring GMF_TOP…….COMPLETED
[exec]     Configuring PON_TOP…….COMPLETED
[exec]     Configuring FTE_TOP…….COMPLETED
[exec]     Configuring ONT_TOP…….COMPLETED
[exec]     Configuring AR_TOP……..COMPLETED
[exec]     Configuring AHL_TOP…….COMPLETED
[exec]     Configuring IES_TOP…….COMPLETED
[exec]     Configuring OZF_TOP…….COMPLETED
[exec]     Configuring CSD_TOP…….COMPLETED
[exec]     Configuring IGC_TOP…….COMPLETED
[exec]
[exec] AutoConfig completed successfully.
runAutoconfigWindows:
setEBSProfiles:
[echo]  Updating Profile  FND_SERVER_DESKTOP_USER
[java] Nov 02, 2016 8:21:24 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:
[echo]  Updating Profile FND_SERVER_SEC
[java] Nov 02, 2016 8:21:26 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:
[echo]  Updating Profile FND_SERVER_IP_SEC
[java] Nov 02, 2016 8:21:28 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:
[echo]  Updating Profile FND_SQLNET_ACCESS
[java] Nov 02, 2016 8:21:29 AM oracle.apps.fnd.txk.util.TXKFMWGenericConfigUtility readPasswordFromStdin
[java] INFO: Enter APPS Password:

ebsConfigForSOA:

BUILD SUCCESSFUL
Total time: 6 minutes 36 seconds
# Verify new Profile Option Settings
SQL Statement which produced this data:
/* Formatted on 11/17/2016 7:07:54 AM (QP5 v5.300) */
SELECT n.user_profile_option_name              NAME,
TO_CHAR (v.last_update_date, ‘DD-MON-RR’)”Last Updated”,
DECODE (v.level_id,
10001, ‘Site’,
10002, ‘Application’,
10003, ‘Responsibility’,
10004, ‘User’,
10005, ‘Server’,
10007, ‘SERVRESP’,
v.level_id)
LEVEL_SET,
DECODE (TO_CHAR (v.level_id),
‘10001’, ”,
‘10002’, app.application_short_name,
‘10003’, rsp.responsibility_key,
‘10005’, svr.node_name,
‘10006’, org.name,
‘10004’, usr.user_name,
‘10007’, v.LEVEL_VALUE2,
‘UnDef’)
“CONTEXT”,
v.profile_option_value                  VALUE
FROM fnd_profile_options      p,
fnd_profile_option_values v,
fnd_profile_options_tl   n,
fnd_user                 usr,
fnd_application          app,
fnd_responsibility       rsp,
fnd_nodes                svr,
hr_operating_units       org
WHERE     p.profile_option_id = v.profile_option_id(+)
AND p.profile_option_name = n.profile_option_name
AND UPPER (p.profile_option_name) IN (‘FND_SERVER_DESKTOP_USER’,
‘FND_SERVER_SEC’,
‘FND_SERVER_IP_SEC’,
‘FND_SQLNET_ACCESS’)
AND n.language = ‘US’
/* Use for Friendly PONs e.g. MO: Security Option
AND UPPER (n.user_profile_option_name) =
UPPER (”)
*/
AND usr.user_id(+) = v.level_value
AND rsp.application_id(+) = v.level_value_application_id
AND rsp.responsibility_id(+) = v.level_value
AND app.application_id(+) = v.level_value
AND svr.node_id(+) = v.level_value
AND org.organization_id(+) = v.level_value
ORDER BY v.last_update_date DESC;

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
FND: Desktop Nodes allowed|02-NOV-16|User|ASADMIN|[FQhostname]

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
SQLNet Access|02-NOV-16|Site||ALLOW_RESTRICTED

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
FND: Validate IP address|02-NOV-16|Site||D

NAME|Last Updated|LEVEL_SET|CONTEXT|VALUE
FND: Validate User Type|02-NOV-16|Site||D

# Bounce certain services (minimizes downtime – can also bounce everything)
cd $ADMIN_SCRIPTS_HOME

admanagedsrvctl.sh stop oafm_server1
admanagedsrvctl.sh start oafm_server1
admanagedsrvctl.sh stop oacore_server1
admanagedsrvctl.sh start oacore_server1
[etc for any other oacore servers]

#Verify registered payload Class ID (ensures payload can be accessed)
SQL Statement which produced this data:
SELECT class_id
FROM fnd_irep_classes
WHERE     UPPER (irep_name) LIKE ‘%EBIZHOMEPAGESERVICE%’
AND class_type = ‘SERVICEBEAN’;

CLASS_ID
[a Number]

#Try downloading the payload for a specific function (Class ID discovered above)
XSD.zip DEV2 URL:  http://%5ByourEBSURL:port%5D/webservices/isgagent/?generatexsd=%5Bthe above number]
XSD.zip

# Configure the ISG BPEL Payload for use by SOA Suite
ant -f $JAVA_TOP/oracle/apps/fnd/bpel/util/txk_integration_packager.xml \ -DIntegration=isg  -DFMWNodeName=itsrv33m.mwd.h2o -DFMWIpAddress=[MT or Virtual host IP]
[echo] Bpel Payload is archived at $INST_TOP/logs/appl/rgf/TXK/EBS_BPEL_payload.zip

# Verify the “new” SOA Node is registred (MWD is just re-using the built in SOA)
SQL Statement which produced this data:
SELECT node_name, server_address, server_id
FROM fnd_nodes
WHERE UPPER(node_name) in(‘[hostname]’);

NODE_NAME|SERVER_ADDRESS|SERVER_ID
[hostname]|[IP address]|3E3B399AEB80184EE0548A507414599D22425228221243006566902023757213

# A Fix for HPUX, if needed, add set +u to the line right after #!/bin/sh
# vi $FMW_HOME/user_projects/domains/EBS_domain_$TWO_TASK/bin/setDomainEnv.sh

. $FMW_HOME/user_projects/domains/EBS_domain_$TWO_TASK/bin/setDomainEnv.sh

# Warning: the following command will immediately shutdown and restart the WLS Managed Services
ant -f $JAVA_TOP/oracle/apps/fnd/txk/util/txkISGConfigurator.xml ebsSetup

# Change default NAME=APPS connection to NAME=ASADMIN in WLS Admin Console.
# (you want to do this to support APPS password changes in the future – the ASADMIN
# password does not have to be disclosed to Developers once the setup is completed – just
# grant the Integrated SOA Gateway Role and Responsibility to users that need to deploy
# various services.

Data Sources -> OAEADatasource -> Configuration -> Connection Pool
[Lock & Edit]
Modify Properties user=APPS -> user=ASADMIN
Enter ASADMIN password in both password fields
[Save] -> [Activate Changes]

If the ASADMIN password is changed in the target EBS instance, then all of the following steps need to be re-executed in order to register the change with SOA:

# Clean out the prior OAEADatasource connections and definitions
Login to WLS Administration Console.
Services -> Data Sources -> [Lock & Edit] -> Select OAEADatasource -> [Delete]
Security Realms -> myrealm -> Providers -> Select IsgAuthenticator -> [Delete]
[Activate Changes]

$] cd $DOMAIN_HOME/config/jdbc
$] rm OAEADatasource-*-jdbc.xml

Repeat the SOA Integration steps again.

Otherwise, attempting REST deployments will receive an error:
Error
java.lang.SecurityException: User: ASADMIN~~[ORACLE_SID], failed to be authenticated.

New OEM 12c/13c Agent Install Won’t Keep Running – Dies After Awhile

Many agents - Copyright by Warner Bros.,The Wachowski Brothers used without permission as educational content.
Agents are often hard to kill, usually. Images Copyright by Warner Bros., The Wachowski Brothers; used without permission as educational content.

OEM agents tend to occupy memory based upon how many targets they have to keep track of in a particular host.  At another organization, we tended to spin up VM’s for each instance environment, so at maximum, a particular agent might have a few hundred targets (especially on an e-Business Suite Applications Tier.)  In those circumstances, the default Java memory settings are probably fine.

In this environment, we run our hosts to death, and on this particular proof-of-concept host, we have 43 instances running on it, with variants of 10g, 11g, and 12c databases combined.

We are doing a fresh install of OEM 12.1.0.5.0 for our POC before setting up the 13c production OMS, and after deploying the agent to this particular database host, the agent would startup fine, run for about 20 or so minutes and then abruptly die without warning.

Re-starts fine, passes the usual tests fine (before the 20 minutes or so goes by) and then dies again.

AGENT_INST=/u01/app/oracle/agent12c/agent_inst

cd $AGENT_INST/bin

./emctl status agent

Oracle Enterprise Manager Cloud Control 12c Release 5
Copyright (c) 1996, 2015 Oracle Corporation.  All rights reserved.
—————————————————————
Agent Version          : 12.1.0.5.0
OMS Version            : 12.1.0.5.0
Protocol Version       : 12.1.0.1.0
Agent Home             : /u01/app/oracle/agent12c/agent_inst
Agent Log Directory    : /u01/app/oracle/agent12c/agent_inst/sysman/log
Agent Binaries         : /u01/app/oracle/agent12c/core/12.1.0.5.0
Agent Process ID       : 10598
Parent Process ID      : 10499
Agent URL              : https://itsrv33c.mydomain:3872/emd/main/
Local Agent URL in NAT : https://itsrv33c.mydomain:3872/emd/main/
Repository URL         : https://itsrv35g.mydomain:1159/empbs/upload
Started at             : 2016-11-09 09:57:05
Started by user        : oracle
Operating System       : HP-UX version B.11.31 (IA64W)
Last Reload            : (none)
Last successful upload                       : 2016-11-09 10:19:26
Last attempted upload                        : 2016-11-09 10:19:26
Total Megabytes of XML files uploaded so far : 0.2
Number of XML files pending upload           : 0
Size of XML files pending upload(MB)         : 0
Available disk space on upload filesystem    : 16.92%
Collection Status                            : Collections enabled
Heartbeat Status                             : Ok
Last attempted heartbeat to OMS              : 2016-11-09 10:19:53
Last successful heartbeat to OMS             : 2016-11-09 10:19:53
Next scheduled heartbeat to OMS              : 2016-11-09 10:20:53

—————————————————————
Agent is Running and Ready

./emctl pingOMS

Oracle Enterprise Manager Cloud Control 12c Release 5
Copyright (c) 1996, 2015 Oracle Corporation.  All rights reserved.
—————————————————————
EMD pingOMS completed successfully

$AGENT_INST/sysman/log/gcagent.log contains

—– Wed Nov  9 09:39:43 2016::26900::Agent Launched with PID 27336 at time Wed
Nov  9 09:39:43 2016 —–
—– Wed Nov  9 09:39:43 2016::27336::Time elapsed between Launch of Watchdog p
rocess and execing EMAgent is 34 secs —–
2016-11-09 09:39:44,287 [1:main] WARN – Missing filename for log handler ‘wsm’
2016-11-09 09:39:44,302 [1:main] WARN – Missing filename for log handler ‘opss’
2016-11-09 09:39:44,305 [1:main] WARN – Missing filename for log handler ‘opsscf
g’
Agent is going down due to an OutOfMemoryError
—– Wed Nov  9 09:40:06 2016::26900::Checking status of EMAgent : 27336 —–
—– Wed Nov  9 09:40:06 2016::26900::EMAgent exited at Wed Nov  9 09:40:06 201
6 with return value 57. —–
—– Wed Nov  9 09:40:06 2016::26900::EMAgent will be restarted because of an O
ut of Memory Exception. —–
—– Wed Nov  9 09:40:06 2016::26900::writeAbnormalExitTimestampToAgntStmp: exi
tCause=OOM : restartRequired=1 —–
—– Wed Nov  9 09:40:06 2016::26900::Restarting EMAgent. —–

That means, the agent is starting, then stopping, then restarting, then stopping (aka “thrashing”)

Take a look for the running agent daemon at the OS level:

ps -ef | grep agent12c
oracle 26900     1  0 09:39:09 pts/0     0:00 /u01/app/oracle/agent12c/core/12.1.0.5.0/perl/bin/perl /u01/app/oracle/agent12c/core/12.1.0.5.0/bin/emwd.pl agent /u01/app/oracle/…
oracle 27665 26900  0 09:40:12 pts/0     1:01 /u01/app/oracle/agent12c/core/12.1.0.5.0/jdk/bin/IA64W/java -Xmx169M -XX:MaxPermSize=96M -server -Djava.security.egd=file:///de…

Oh – it’s set up for the default of 169MB of RAM.  Check My Oracle Support.

EM 12c: emctl start agent Fails ‘Fatal agent error: State Manager failed at Startup’ ‘restarted because of an Out of Memory Exception’ Reported in emagent.nohup /gcagent.log (Doc ID 1950490.1)

Verify this setting also in the $AGENT_INST/sysman/log/gcagent.log:

—– Wed Nov  9 09:40:06 2016::26900::Auto tuning the agent at time Wed Nov  9
09:40:06 2016 —–
inMemoryLoggingSize=6291456
_SchedulePersistTimer=30
MaxThreads=10
agentJavaDefines=-Xmx169M -XX:MaxPermSize=96M
SchedulerRandomSpreadMins=5
UploadMaxNumberXML=5000
UploadMaxMegaBytesXML=50.0
Auto tuning was successful

Well, it’s trying. Per the above Doc ID 1950490.1

Stop the agent.

$AGENT_INST/bin/emctl stop agent

Edit the $AGENT_INST/sysman/config/emd.properties   (this contains the runtime parameters for the agent):

old entry:
agentJavaDefines=-Xmx169M -XX:MaxPermSize=96M

new entry:
agentJavaDefines=-Xmx512M -XX:MaxPermSize=96M

(You may tune these values up or down according to your environment requirements)

Restart the agent:

$AGENT_INST/bin/emctl stop agent

Agent runs, and keeps running like the E-Bunny.

R12.2 adop phase fs_clone fails because it can’t copy a file.

Complexity leading to fragility
Complex Systems Integration (Courtesy of: https://www.mulesoft.com/resources/esb/business-process-integration)

Oracle…sometimes blinding in complexity, and a foreshadowing of what happens when a system becomes so complex that it becomes fragile.

This is what the screen session looks like:

adnodemgrctl.sh: check the logfile /u01/oradev/fs1/inst/apps/DEV2_itsrv33m/logs/appl/admin/log/adnodemgrctl.txt for more information …
[UNEXPECTED]fs_clone has failed.
[STATEMENT] Please run adopscanlog utility, using the command
“adopscanlog -latest=yes”
to get the list of the log files along with snippet of the error message corresponding to each log file.
adop exiting with status = 2 (Fail)

Here is what it looks like in the adop.log

[EVENT]     Performing CLONE steps.
[PROCEDURE] [START 2016/11/08 08:20:19] CLONE Patch File System from Run File System
[PROCEDURE] Calling: /u01/oradev/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl
[EVENT]     Log: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m
[UNEXPECTED]Error occurred running “perl /u01/oradev/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl -contextfile=/u01/oradev/fs2/inst/apps/DEV2_itsrv33m/appl/admin/DEV2_itsrv33m.xml -patchcontextfile=/u01/oradev/fs1/inst/apps/DEV2_itsrv33m/appl/admin/DEV2_itsrv33m.xml -promptmsg=hide -console=off -mode=create -sync_mode=copy -sessionid=25 -timestamp=20161108_081645 -outdir=/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m”
[UNEXPECTED]occurred during CLONE Patch File System from Run File System, running command: “perl /u01/oradev/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl -contextfile=/u01/oradev/fs2/inst/apps/DEV2_itsrv33m/appl/admin/DEV2_itsrv33m.xml -patchcontextfile=/u01/oradev/fs1/inst/apps/DEV2_itsrv33m/appl/admin/DEV2_itsrv33m.xml -promptmsg=hide -console=off -mode=create -sync_mode=copy -sessionid=25 -timestamp=20161108_081645 -outdir=/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m”.
[EVENT]     Releasing managed server ports.
[PROCEDURE] [START 2016/11/08 08:30:55] Releasing ports
[STATEMENT] Calling task: “Releasing ports on itsrv33m”; script: “/u01/oradev/fs2/inst/apps/DEV2_itsrv33m/admin/install/txkCloneAcquirePort.pl”; args: ” -option=close -server=itsrv33m.mwd.h2o -ports=5570,7015,7615,7415,7215,7216,7217,7815,6114,6214,10013 -log=/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/txkCloneAcquirePort.log”
[PROCEDURE] [START 2016/11/08 08:30:56] Releasing ports on itsrv33m
[PROCEDURE] Calling: /u01/oradev/fs2/inst/apps/DEV2_itsrv33m/admin/install/txkCloneAcquirePort.pl
[EVENT]     Log: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/txkCloneAcquirePort.log
[PROCEDURE] [END   2016/11/08 08:30:57] Releasing ports on itsrv33m
[PROCEDURE] [END   2016/11/08 08:30:57] Releasing ports

How cryptic!  Looks complicated.  This system happens to have AD/TXK.Delta.8, so the logs related to adop are all being centralized under the session # (in this case “25”.)

Diving deep into the log subdirectories:

/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/txkADOPPreparePhaseSynchronize.log

================================
Inside copyComnUtil()…
================================

Directory /u01/oradev/fs1/EBSapps/comn already exists.
Removing the directory: /u01/oradev/fs1/EBSapps/comn/util

Copying the directory
———————
SOURCE : /u01/oradev/fs2/EBSapps/comn/util
TARGET : /u01/oradev/fs1/EBSapps/comn/util

Execute SYSTEM command : cp -rH  /u01/oradev/fs2/EBSapps/comn/util /u01/oradev/fs1/EBSapps/comn/util
EXIT STATUS: 1
Copied /u01/oradev/fs2/EBSapps/comn/util into /u01/oradev/fs1/EBSapps/comn/utilLOG FILE: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/cp_rH.out

<snip>
======================================
Inside copyCloneLogsToFSNE()…
======================================

Creating the directory: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/fsclone_apply

Copying the directory
———————
SOURCE : /u01/oradev/fs2/inst/apps/DEV2_itsrv33m/admin/log/clone
TARGET : /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/fsclone_apply

/u01/oradev/fs2/EBSapps/comn/adopclone_itsrv33m/bin/adclone.pl did not go through successfully.
LOG DIRECTORY: /u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/fsclone_apply.
*******FATAL ERROR*******
PROGRAM : (/u01/oradev/fs2/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPPreparePhaseSynchronize.pl)
TIME    : Tue Nov  8 08:30:55 2016
FUNCTION: main::runFSCloneApply [ Level 1 ]
ERRORMSG: /u01/oradev/fs2/EBSapps/comn/adopclone_itsrv33m/bin/adclone.pl did not go through successfully.

/u01/oradev/fs_ne/EBSapps/log/adop/25/20161108_081645/fs_clone/itsrv33m/TXK_SYNC_create/fsclone_apply/FSCloneApplyAppsTier_11080821.log

(One innocuous, but annoying file, owned by someone other than applmgr, and happened to be 600 (user read/write only):)

Done copying /u01/oradev/fs2/EBSapps/appl/wms to /u01/oradev/fs1/EBSapps/appl/wms/
Copying /u01/oradev/fs2/EBSapps/appl/gmf to /u01/oradev/fs1/EBSapps/appl/gmf/
WARNING:
.end std out.
cp: cannot open /u01/oradev/fs2/EBSapps/appl/mwd/12.0.0/sql/MWDPOLPO.xsl: Permission denied

.end err out.
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/mwd failed
ERROR: Copying failed, so stopping all the parallel threads
Done copying /u01/oradev/fs2/EBSapps/appl/okc to /u01/oradev/fs1/EBSapps/appl/okc/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/okc failed
Done copying /u01/oradev/fs2/EBSapps/comn/java/classes/oracle/apps/pqh to /u01/oradev/fs1/EBSapps/comn/java/classes/oracle/apps/pqh/
WARNING: Copying of /u01/oradev/fs2/EBSapps/comn/java/classes/oracle/apps/pqh failed
Done copying /u01/oradev/fs2/EBSapps/appl/gmf to /u01/oradev/fs1/EBSapps/appl/gmf/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/gmf failed
Done copying /u01/oradev/fs2/EBSapps/comn/java/classes/oracle/apps/ies to /u01/oradev/fs1/EBSapps/comn/java/classes/oracle/apps/ies/
WARNING: Copying of /u01/oradev/fs2/EBSapps/comn/java/classes/oracle/apps/ies failed
Done copying /u01/oradev/fs2/EBSapps/appl/msc to /u01/oradev/fs1/EBSapps/appl/msc/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/msc failed
Done copying /u01/oradev/fs2/EBSapps/appl/ams to /u01/oradev/fs1/EBSapps/appl/ams/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/ams failed
Done copying /u01/oradev/fs2/EBSapps/appl/cs to /u01/oradev/fs1/EBSapps/appl/cs/
WARNING: Copying of /u01/oradev/fs2/EBSapps/appl/cs failed
START: Inside exitClone….
Updating status INCOMPLETE for ApplyApplTop
START: Updating status INCOMPLETE for action ApplyApplTop
END: Updated status INCOMPLETE for action ApplyApplTop

One file.  A single file.  Could have been a hidden file. Could have been anywhere in the entire AppsTier filesystem.  This one file stopped ADOP cold from performing.  This happened to be phase=fs_clone, but could have been a patching session, or a post-clone config (adcfgclone.pl) session.

Remove the file, and:

The fs_clone phase completed successfully.
adop exiting with status = 0 (Success)

Complexity leads to unintentional fragility.

Monitoring Oracle e-Business Suite (R12.2)

People ask what do I look for when monitoring an EBS instance for availability? Oracle Enterprise Manager (OEM) with the Applications Management Pack (AMS) gives a good starting point, but here is a condensed list of my general health check items for my production instance. It’s not everything possible, but it’s what I generally would check during a shake-down of a disaster-recovery exercise.

Warning Critical
Oracle E-Business Suite
Oracle Applications Infrastructure Service
Database Instance select SYSDATE from dual; Up/Down
Tablespace Freespace Available >80% >90%
Temporary Tablespace Used >80% >90%
Undo Tablespace Used >80% >90%
Fast Recovery Area Utilization >80% >90%
Redo Log Switch Rate > 10/hr. >20/hr
Blocking Sessions >1 >5
Database Listener tnsping <ORACLE_SID> Up/Down
TNSPing Response Time > 25ms > 100ms
Applications Listener tnsping <FNDFS_ORACLE_SID> Up/Down
Host Monitoring
CPU Utilization > 80% > 95%
RAM Utilization > 90% > 99%
Mountpoint Free Space Available <10% <5%
Concurrent Processing Services
Internal Manager Up/Down
Standard Manager < 10
Output Post Processor < 3
Receiving Transactions Manager < 1
Document Approval Manager < 1
Forms Applications Service
Forms Listener Service Up/Down
Forms Runtime Processes <1
Forms Response Time >5 secs >30 secs
Active Forms Sessions > 100 > 200
Self-Service Applications Service
HTTP Listener Service Up/Down
OPMN Processor Up/Down
OC4J Service Up/Down
WebLogic Deployed Services Up/Down
WebLogic AdminServer Up/Down
OA Framework Page Response Time > 5 secs > 10 secs
Oracle Applications JVM Usage >80% >90%
Workflow Serivce OAM Dashboard Up/Down
Workflow Agent Listener Up/Down
Workflow Background Engine Up/Down
Workflow Notification Mailer Services Up/Down
Oracle E-Business Suite Custom Objects
Invalid Object Count > 482 > 500
Oracle E-Business Suite Patch Information
Patch Inventory
ADOP Session Status >1 Pending >1 Failed