Saturday 17 December 2022

OUAF Oracle Utilities WAM / ODM 2.4.0.0 installation on Windows

 This blog is for anyone looking to install Oracle Utilities WAM or ODM 2.4.0.0 (Oracle Utilities Workflow and Asset Management) or (Oracle Utilities Operational Device Management)

WAM and ODM are the same product. ODM just gives some additional features on top of WAM. During installation there is no difference in the steps for WAM or ODM. It is one product. Once installed you can use application services to disable access to ODM features of WAM, if ODM is not needed, for your implementation. The application services for ODM, is separate from that of WAM, for easily updating the access as needed.


I have put the main steps needed for installing the product. Refer below blog for C2M for understanding how to setup the prerequisites for the installation. 

http://myouafworld.blogspot.com/2020/06/ouaf-c2m-2703-installation-on-windows64.html

Similar steps are needed for WAM for following:

  • Java Installation

  • Database installation – Install 19c instead of 12c

  • Hibernate folder

  • System Variables 

For Weblogic installation, refer the steps given further below instead of the one in the C2M blog as the version has changed.


Downloading WAM / ODM from Oracle Edelivery:

Refer below steps for downloading the fields for WAM / ODM. There are no separate files for ODM. 

Select Linux for the Framework as there is no windows option available.


Download all the files present below.


Database installation steps:

For WAM 2.4.0.0, use Oracle 19c database.

Add Listener:












Create Database:






Login to database as sys as SYSDBA and verify that you are able to connect.



If you have multiple database services on the same listener use below method to join, else you can used sys as SYSDBA to connect. Also if there are multiple databases linked to same listener, ensure you stop the databases other than the one for WAM2400.


The database needs to be updated for extending the string size for VarChar before importing the demo database. Refer below steps for doing the same.


SQLplus commands for updating database to EXTENDED

Connect to sqlplus

Connect using sys as sysdba


Shutdown database

SHUTDOWN NORMAL


Start database in upgrade mode

STARTUP UPGRADE


Update value to EXTENDED

alter system set max_string_size='EXTENDED';


Run script

@C:/myfolder/OracleDownloads/OracleDatabase/Oracle19c/V982656-01/rdbms/admin/utl32k.sql


Restart DB in Normal Mode

SHUTDOWN

STARTUP


Run script

@C:/myfolder/OracleDownloads/OracleDatabase/Oracle19c/V982656-01/rdbms/admin/utlrp.sql


Use below command for logging in if you have multiple databases linked to same listener

sqlplus sys/password@localhost:1523/WAM2400 as SYSDBA


Below is the command prompt output for your reference:

C:\WINDOWS\system32>sqlplus sys/password@localhost:1523/WAM2400 as SYSDBA


SQL*Plus: Release 19.0.0.0.0 - Production on Sun Nov 20 19:51:45 2022

Version 19.3.0.0.0


Copyright (c) 1982, 2019, Oracle.  All rights reserved.



Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0


SQL> SHUTDOWN NORMAL

Database closed.

Database dismounted.

ORACLE instance shut down.

ERROR:

ORA-12514: TNS:listener does not currently know of service requested in connect

descriptor



Warning: You are no longer connected to ORACLE.

SQL>

SQL>

SQL> ^C

C:\WINDOWS\system32>sqlplus


SQL*Plus: Release 19.0.0.0.0 - Production on Sun Nov 20 20:03:48 2022

Version 19.3.0.0.0


Copyright (c) 1982, 2019, Oracle.  All rights reserved.


Enter user-name: sys as SYSDBA

Enter password:

Connected to an idle instance.


SQL> STARTUP UPGRADE

ORACLE instance started.


Total System Global Area 3841981992 bytes

Fixed Size                  9035304 bytes

Variable Size             738197504 bytes

Database Buffers         3087007744 bytes

Redo Buffers                7741440 bytes

Database mounted.

Database opened.

SQL> alter system set max_string_size='EXTENDED';


System altered.


SQL> @C:/myfolder/OracleDownloads/OracleDatabase/Oracle19c/V982656-01/rdbms/admin/utl32k.sql


Session altered.



Session altered.


DOC>#######################################################################

DOC>#######################################################################

DOC>   The following statement will cause an "ORA-01722: invalid number"

DOC>   error if the database has not been opened for UPGRADE.

DOC>

DOC>   Perform a "SHUTDOWN ABORT"  and

DOC>   restart using UPGRADE.

DOC>#######################################################################

DOC>#######################################################################

DOC>#


no rows selected


DOC>#######################################################################

DOC>#######################################################################

DOC>   The following statement will cause an "ORA-01722: invalid number"

DOC>   error if the database does not have compatible >= 12.0.0

DOC>

DOC>   Set compatible >= 12.0.0 and retry.

DOC>#######################################################################

DOC>#######################################################################

DOC>#


PL/SQL procedure successfully completed.



Session altered.



0 rows updated.



Commit complete.



System altered.



PL/SQL procedure successfully completed.



Commit complete.



System altered.



Session altered.



Session altered.



Table created.



Table created.



Table created.



Table truncated.



0 rows created.



PL/SQL procedure successfully completed.



STARTTIME

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

11/20/2022 20:06:35.973000000



PL/SQL procedure successfully completed.


No errors.


PL/SQL procedure successfully completed.



Session altered.



Session altered.



0 rows created.



no rows selected



no rows selected


DOC>#######################################################################

DOC>#######################################################################

DOC>   The following statement will cause an "ORA-01722: invalid number"

DOC>   error if we encountered an error while modifying a column to

DOC>   account for data type length change as a result of enabling or

DOC>   disabling 32k types.

DOC>

DOC>   Contact Oracle support for assistance.

DOC>#######################################################################

DOC>#######################################################################

DOC>#


PL/SQL procedure successfully completed.



PL/SQL procedure successfully completed.



Commit complete.



Package altered.



Package altered.



Session altered.


SQL> SHUTDOWN

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> STARTUP

ORACLE instance started.


Total System Global Area 3841981992 bytes

Fixed Size                  9035304 bytes

Variable Size             738197504 bytes

Database Buffers         3087007744 bytes

Redo Buffers                7741440 bytes

Database mounted.

Database opened.

SQL> @C:/myfolder/OracleDownloads/OracleDatabase/Oracle19c/V982656-01/rdbms/admin/utlrp.sql


Session altered.



TIMESTAMP

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

COMP_TIMESTAMP UTLRP_BGN              2022-11-20 20:09:52


DOC>   The following PL/SQL block invokes UTL_RECOMP to recompile invalid

DOC>   objects in the database. Recompilation time is proportional to the

DOC>   number of invalid objects in the database, so this command may take

DOC>   a long time to execute on a database with a large number of invalid

DOC>   objects.

DOC>

DOC>   Use the following queries to track recompilation progress:

DOC>

DOC>   1. Query returning the number of invalid objects remaining. This

DOC>      number should decrease with time.

DOC>         SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6);

DOC>

DOC>   2. Query returning the number of objects compiled so far. This number

DOC>      should increase with time.

DOC>         SELECT COUNT(*) FROM UTL_RECOMP_COMPILED;

DOC>

DOC>   This script automatically chooses serial or parallel recompilation

DOC>   based on the number of CPUs available (parameter cpu_count) multiplied

DOC>   by the number of threads per CPU (parameter parallel_threads_per_cpu).

DOC>   On RAC, this number is added across all RAC nodes.

DOC>

DOC>   UTL_RECOMP uses DBMS_SCHEDULER to create jobs for parallel

DOC>   recompilation. Jobs are created without instance affinity so that they

DOC>   can migrate across RAC nodes. Use the following queries to verify

DOC>   whether UTL_RECOMP jobs are being created and run correctly:

DOC>

DOC>   1. Query showing jobs created by UTL_RECOMP

DOC>         SELECT job_name FROM dba_scheduler_jobs

DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';

DOC>

DOC>   2. Query showing UTL_RECOMP jobs that are running

DOC>         SELECT job_name FROM dba_scheduler_running_jobs

DOC>            WHERE job_name like 'UTL_RECOMP_SLAVE_%';

DOC>#


PL/SQL procedure successfully completed.



TIMESTAMP

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

COMP_TIMESTAMP UTLRP_END              2022-11-20 20:10:03


DOC> The following query reports the number of invalid objects.

DOC>

DOC> If the number is higher than expected, please examine the error

DOC> messages reported with each object (using SHOW ERRORS) to see if they

DOC> point to system misconfiguration or resource constraints that must be

DOC> fixed before attempting to recompile these objects.

DOC>#


OBJECTS WITH ERRORS

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

                  0


DOC> The following query reports the number of exceptions caught during

DOC> recompilation. If this number is non-zero, please query the error

DOC> messages in the table UTL_RECOMP_ERRORS to see if any of these errors

DOC> are due to misconfiguration or resource constraints that must be

DOC> fixed before objects can compile successfully.

DOC> Note: Typical compilation errors (due to coding errors) are not

DOC>       logged into this table: they go into DBA_ERRORS instead.

DOC>#


ERRORS DURING RECOMPILATION

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

                          0



Function created.



PL/SQL procedure successfully completed.



Function dropped.



PL/SQL procedure successfully completed.


SQL>



Login to database as sys as SYSDBA.

Run below db statements.


CREATE TABLESPACE CISTS_01 LOGGING DATAFILE 'C:/c2m/database/wam2400/oradata/WAM2400/cists01.dbf' SIZE 1024M REUSE AUTOEXTEND ON NEXT 8192K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;



CREATE ROLE CIS_USER;

CREATE ROLE CIS_READ;

GRANT CREATE SYNONYM to CIS_USER;

GRANT CREATE SYNONYM to CIS_READ;



CREATE USER CISADM IDENTIFIED BY CISADM DEFAULT TABLESPACE CISTS_01 TEMPORARY TABLESPACE TEMP PROFILE DEFAULT;

GRANT UNLIMITED TABLESPACE TO CISADM WITH ADMIN OPTION;

GRANT SELECT ANY TABLE TO CISADM;

GRANT CREATE DATABASE LINK TO CISADM;

GRANT CONNECT TO CISADM;

GRANT RESOURCE TO CISADM;

GRANT DBA TO CISADM WITH ADMIN OPTION;

GRANT CREATE ANY SYNONYM TO CISADM;

GRANT SELECT ANY DICTIONARY TO CISADM;


CREATE USER CISUSER PROFILE DEFAULT IDENTIFIED BY CISUSER DEFAULT TABLESPACE CISTS_01 TEMPORARY TABLESPACE TEMP;

GRANT SELECT ANY TABLE TO CISUSER;

GRANT CIS_USER TO CISUSER;

GRANT CIS_READ TO CISUSER;

GRANT CONNECT TO CISUSER;


CREATE USER CISOPR PROFILE DEFAULT IDENTIFIED BY OPRPLUS DEFAULT TABLESPACE CISTS_01 TEMPORARY TABLESPACE TEMP;

GRANT CONNECT,RESOURCE,EXP_FULL_DATABASE TO CISOPR;


CREATE USER CISREAD IDENTIFIED BY CISREAD DEFAULT TABLESPACE CISTS_01 TEMPORARY TABLESPACE TEMP;

GRANT SELECT ANY TABLE TO CISREAD;

GRANT CIS_READ TO CISREAD;

GRANT CONNECT TO CISREAD;


grant execute on dbms_rls to CISADM with grant option;

grant execute on dbms_crypto to CISADM;


Import Demo Database:


Check datapump dir location:

SELECT directory_name, directory_path FROM dba_directories where directory_name = 'DATA_PUMP_DIR';


DATA_PUMP_DIR C:\c2m\dbadmin\app\admin\wam2400\dpdump/


Extract dmp file and place it in data pump directory


Get the dump file from below location.

C:\myfolder\OracleDownloads\WAM_2.4.0.0\V1020073-01.zip


WAM-V2.4.0.0.0-Database.zip\WAM-V2.4.0.0.0-Database\WAM\Demo

Take either dump file for WAM or ODM. Both have same demo data.

Extract the .gz file using 7zip and place the expdp_WAM_demo.dmp file at the data pump dir location



Run below import command on command prompt


impdp directory=data_pump_dir dumpfile=expdp_WAM_demo.dmp logfile=expdp_WAM_demo.log schemas=CISADM


sys@WAM2400 as SYSDBA



Creating Synonyms for CISUSER and CISREAD:


Extract the files in V1020069-01


Run below command for creating the synonyms for CISUSER and CISREAD users:

"%JAVA_HOME%"\bin\java -Xmx1500M -cp C:\myfolder\OracleDownloads\WAM_2.4.0.0\V1020069-01\jarfiles\* com.oracle.ouaf.oem.install.OraGenSec -l oragensec.log -d CISADM,CISADM,jdbc:oracle:thin:@localhost:1523/WAM2400 -a A -r CIS_USER,CIS_READ -u CISUSER,CISREAD -p CISUSER,CISREAD


Verify that all synonyms are created properly and there are no errors.




Weblogic Installation:


Download steps:

Ensure you download version 12.2.1.4 or above of weblogic


Only below file ‘V983368-01.zip’ is needed for installation.



Installation steps:



Open command prompt, navigate to above location

Run below command


C:\c2m\java\jdk\bin\java –jar fmw_12.2.1.4.0_infrastructure.jar


Below screen opens up, follow the steps shown below.










Weblogic Installation completed.


Application Installation:


Extract all the jar files for WAM and place it in a temporary location.

I have placed them in C:/w location



Use 7-Zip and extract all the jar files


The Framework component (FW) is not available currently in jar format. It is in zip format. Extract the same also and place here.



Navigate to C:\t\FW-V4.5.0.0.0 folder and run install.cmd file




Navigate to FW-V4.5.0.0.0 folder on command prompt and run install.cmd file


Enter values for the menu options as specified below


************************************

* Environment Installation Options *

************************************


 1. Environment ID, Roles, Third Party Software Configuration

       Environment ID:                                    69029504

       Server Roles:                                      batch,online

       Oracle Client Home Directory:                      C:\myfolder\OracleDownloads\OracleDatabase\Oracle19c\V982656...

       Web Java Home Directory:                           C:\c2m\java\jdk

       Hibernate JAR Directory:                           C:\c2m\hibernate

       ONS JAR Directory:

       Web Application Server Home Directory:             C:/c2m/weblogic/12.2.1.4.0/Oracle/Middleware/Oracle_Home/wls...

       Additional JAR Directory:


 2. Keystore Options

       Import Keystore Directory:


50. Environment Installation Options

       Environment Mount Point:                           C:/c2m/ouaf

       Log Files Mount Point:                             C:/c2m/ouaf/sploutput

       Environment Name:                                  WAM2400

       Install Application Viewer Module:                 false

       Install Sample CM Source Code:                     true


Each item in the above list should be configured for a successful install.


Choose option (1,2,50, <P> Process, <X> Exit):


Enter P and process it

Below menu opens up. Enter the values as shown below.


*************************************

* Environment Configuration WAM2400 *

*************************************


 1. Environment Description

       Environment Description:                           wam2400


 2. Business Application Server Configuration

       Business Server Host:                              localhost

       Business Server Application Name:                  SPLService


 3. Web Application Server Configuration

       Web Server Host:                                   localhost

       WebLogic SSL Port Number:                          6501

       WebLogic Console Port Number:                      7001

       Web Context Root:                                  ouaf

       WebLogic JNDI User ID:                             system

       WebLogic JNDI Password:                            ouafadmin

       WebLogic Server Name:                              wam2400server

       Web Server Application Name:                       SPLWeb

       Deploy Application Viewer Module:                  false

       Enable The Unsecured Health Check Service:         false

       MDB RunAs User ID:                                 SYSUSER

       Super User Ids:


 4. Database Configuration

       Application Server Database User ID:               CISADM

       Application Server Database Password:              CISADM

       XAI Database User ID:                              CISADM

       XAI Database Password:                             CISADM

       Batch Database User ID:                            CISADM

       Batch Database Password:                           CISADM

       Web JDBC DataSource Name:

       Database Name:                                     WAM2400

       Database Server:                                   localhost

       Database Port:                                     1523

       ONS Server Configuration:

       Database Override Connection String:

       Character Based Database:                          false

       Oracle Client Character Set NLS_LANG:              AMERICAN_AMERICA.AL32UTF8


 5. General Configuration Options

       Batch RMI Port:                                    6540

       RMI Port number for JMX Business:                  6550

       RMI Port number for JMX Web:                       6570

       JMX Enablement System User ID:                     system

       JMX Enablement System Password:                    ouafadmin

       Coherence Cluster Name:                            mycluster

       Coherence Cluster Address:                         localhost

       Coherence Cluster Port:                            6903

       Coherence Cluster Mode:                            dev


 6. OUAF TrustStore Options

       Import TrustStore Directory:


Each item in the above list should be configured for a successful install.


Choose option (1,2,3,4,5,6, <P> Process, <X> Exit):


After entering all values, enter P and process it.


Updating keystore:


Verify keystore files are present under ks folder





1. Using configureEnv.cmd, re-enter the menu passwords to encrypt the data.

2. Run initialSetup.cmd to update property files with the encrypted data.


Next navigate to %SPLEBASE%/bin folder


Run splenviron.cmd -e WAM2400


Navigate back to bin folder

Run following commands


perl run_java_standalone.plx com.splwg.shared.common.ResetCryptographyKey


invokeDBUpdatePatch.cmd


Verify that both commands ran successfully.

This completes the configuration of OUAF keystore part of the installation


Installing the WAM/ODM Component:


Navigate to the WAM folder (C:\w\W1.V2.4.0.0.0) in command prompt and execute the install.cmd file in each.

No need to change any values in the menu for this modules. Just enter P and process it.



Native installation of WAM 2.4.0.0 on Weblogic:

Refer my earlier blog on native installation of C2M 2703 for the steps on installing WAM in weblogic.


http://myouafworld.blogspot.com/2020/06/ouaf-c2m-2703-installation-on-windows64_5.html

Replace any names for the server and any names containing c2m2703 to wam2400 during the installation

e.g. c2m2703server will be renamed to wam2400server

c2m2703mac will be renamed to wam2400mac and so on..


Also refer my earlier blog for automating the steps for native installation using WLST. This reduces the time taken for the native installation and also reduces any configuration errors. 

http://myouafworld.blogspot.com/2022/08/automating-native-installation-of-c2m.html


Below are the WLST files used for this WAM installation for your reference:



domain.properties

MW_HOME=C:/c2m/weblogic/12.2.1.4.0/Oracle/Middleware/Oracle_Home

TEMPLATE=C:/c2m/weblogic/12.2.1.4.0/Oracle/Middleware/Oracle_Home/wlserver/common/templates/wls/wls.jar 

DOMAIN_DIR=C:/c2m/weblogic/12.2.1.4.0/Oracle/Middleware/Oracle_Home/user_projects/domains/

ADMIN_LISTEN_ADDRESS=localhost

ADMIN_PORT=7001

ADMIN_USER=weblogic

ADMIN_PWD=password

NODEMANAGER_LISTEN_ADDRESS=localhost

NODEMANAGER_PORT=5556

DOMAIN_NAME=wam2400_domain

OUAF_SERVER_NAME=wam2400server

OUAF_MAC_NAME=wam2400mac

OUAF_PORT=6500

OUAF_SSL_PORT=6501

SPLEBASE=C:/c2m/ouaf/WAM2400

OUAF_CLASSES=C:/c2m/ouaf/WAM2400/splapp/standalone/lib/antlr-2.7.7.jar;C:/c2m/weblogic/12.2.1.4.0/Oracle/Middleware/Oracle_Home/wlserver/server/lib/weblogic_sp.jar;C:/c2m/weblogic/12.2.1.4.0/Oracle/Middleware/Oracle_Home/wlserver/server/lib/weblogic.jar


createdomain.py

def create_domain():

print "Reading base domain template"

readTemplate(TEMPLATE)

cd('/')

 

print "AdminServer settings"

cmo.setName(DOMAIN_NAME)

cd('Servers/AdminServer')

cmo.setListenAddress(ADMIN_LISTEN_ADDRESS)

cmo.setListenPort(int(ADMIN_PORT))

cd( '/' )

cd( 'Security/'+DOMAIN_NAME+'/User/' +ADMIN_USER)

cmo.setPassword(ADMIN_PWD)

cd('/')

 

print "Domain setup.."

setOption("ServerStartMode", "dev")

setOption("OverwriteDomain", "true")

setOption('JavaHome','C:/c2m/java/jdk')

writeDomain( DOMAIN_DIR+'/'+DOMAIN_NAME )

print "=============================================="

print "Domain created successfully..."

print "=============================================="

 

closeTemplate()

 

 

def apply_jrf2domain():

# Apply the JRF Template.

print "reading domain:"+DOMAIN_NAME

readDomain(DOMAIN_DIR+'/'+DOMAIN_NAME )

addTemplate(MW_HOME + '/oracle_common/common/templates/wls/oracle.jrf_restricted_template.jar')

print "Adding Template :oracle.jrf_restricted_template.jar"

 


updateDomain()

print "Updated the domain with Restricted JRF"

closeDomain()

print "Close the domain"

exit()

 

def main():

print "=============================================="

print "Welcome to Restricted JRF domain configuration"

print "=============================================="

 

create_domain()

print "Domain created successfully..."

apply_jrf2domain()

 

main()


createouafserver.py

connect(ADMIN_USER, ADMIN_PWD ,'t3://'+ ADMIN_LISTEN_ADDRESS +':' + ADMIN_PORT)


edit()

startEdit()


cd('/JTA/'+DOMAIN_NAME)

cmo.setTimeoutSeconds(86400)


activate()


startEdit()


cd('/')


cmo.setInternalAppsDeployOnDemandEnabled(false)


activate()


startEdit()

cmo.createMachine(OUAF_MAC_NAME)


cd('/Machines/' + OUAF_MAC_NAME + '/NodeManager/' + OUAF_MAC_NAME)

cmo.setNMType('SSL')

cmo.setListenAddress(NODEMANAGER_LISTEN_ADDRESS)

cmo.setListenPort(int(NODEMANAGER_PORT))

cmo.setDebugEnabled(false)


activate()


startEdit()


cd('/')

cmo.createServer(OUAF_SERVER_NAME)


cd('/Servers/' + OUAF_SERVER_NAME)

cmo.setListenAddress('')

cmo.setListenPort(int(OUAF_PORT))


startEdit()


cd('/Servers/' + OUAF_SERVER_NAME + '/ServerDiagnosticConfig/' + OUAF_SERVER_NAME)

cmo.setDiagnosticContextEnabled(true)


cd('/Servers/' + OUAF_SERVER_NAME + '/WebServer/' + OUAF_SERVER_NAME + '/WebServerLog/' + OUAF_SERVER_NAME)

cmo.setLogFileFormat('extended')

cmo.setELFFields('date time cs-method ctx-ecid ctx-rid cs-uri sc-status bytes')


cd('/AppDeployments/DMS Application#12.2.1.1.0')

cmo.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))


cd('/AppDeployments/coherence-transaction-rar')

cmo.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))


cd('/ShutdownClasses/DMSShutdown')

cmo.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))


cd('/StartupClasses/JRF Startup Class')

cmo.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))


cd('/StartupClasses/ODL-Startup')

cmo.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))


cd('/StartupClasses/DMS-Startup')

cmo.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))


cd('/StartupClasses/AWT Application Context Startup Class')

cmo.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))


cd('/StartupClasses/WSM Startup Class')

cmo.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))


cd('/WLDFSystemResources/Module-FMWDFW')

cmo.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))


cd('/')


libr = cmo.getLibraries()


for x in libr:

x.addTarget(getMBean('/Servers/' + OUAF_SERVER_NAME))



activate()


startEdit()


cd('/Servers/' + OUAF_SERVER_NAME)

cmo.setListenPortEnabled(true)

cmo.setClientCertProxyEnabled(false)

cmo.setJavaCompiler('javac')

cmo.setMachine(getMBean('/Machines/' + OUAF_MAC_NAME))

cmo.setCluster(None)


cd('/Servers/' + OUAF_SERVER_NAME + '/SSL/' + OUAF_SERVER_NAME)

cmo.setEnabled(true)

cmo.setListenPort(int(OUAF_SSL_PORT))


cd('/Servers/' + OUAF_SERVER_NAME + '/ServerDiagnosticConfig/' + OUAF_SERVER_NAME)

cmo.setWLDFDiagnosticVolume('Low')


activate()


startEdit()


cd('/Servers/' + OUAF_SERVER_NAME + '/ServerStart/' + OUAF_SERVER_NAME)

cmo.setClassPath(OUAF_CLASSES)

cmo.setArguments('-Xms3072m -Xmx3072m -XX:PermSize=300m')


activate()


startEdit()


cd('/')

cmo.createXMLRegistry('myxmlregistry')


cd('/Servers/' + OUAF_SERVER_NAME)

cmo.setXMLRegistry(getMBean('/XMLRegistries/myxmlregistry'))


cd('/XMLRegistries/myxmlregistry')

cmo.setSAXParserFactory('com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl')

cmo.setXMLOutputFactory('weblogic.xml.jaxp.WebLogicXMLOutputFactory')

cmo.setSchemaFactory('weblogic.xml.jaxp.WebLogicSchemaFactory')

cmo.setXMLInputFactory('weblogic.xml.jaxp.WebLogicXMLInputFactory')

cmo.setXpathFactory('weblogic.xml.jaxp.WebLogicXPathFactory')

cmo.setDocumentBuilderFactory('com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl')

cmo.setXMLEventFactory('weblogic.xml.jaxp.WebLogicXMLEventFactory')

cmo.setTransformerFactory('com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl')


activate()


startEdit()


cd('/SecurityConfiguration/'+DOMAIN_NAME+'/Realms/myrealm')

cmo.setCombinedRoleMappingEnabled(false)


activate()


startEdit()


cd('/SecurityConfiguration/'+DOMAIN_NAME+'/Realms/myrealm/PasswordValidators/SystemPasswordValidator')

cmo.setMinNumericOrSpecialCharacters(0)


activate()


startEdit()


cd('/SecurityConfiguration/'+DOMAIN_NAME)

cmo.setWebAppFilesCaseInsensitive('false')

cmo.setPrincipalEqualsCompareDnAndGuid(false)

cmo.setUseKSSForDemo(false)

cmo.setCrossDomainSecurityEnabled(false)

cmo.setPrincipalEqualsCaseInsensitive(false)

cmo.setAnonymousAdminLookupEnabled(false)

cmo.setClearTextCredentialAccessEnabled(false)

cmo.setEnforceStrictURLPattern(true)

cmo.setIdentityDomainAwareProvidersRequired(false)

cmo.setCompatibilityConnectionFiltersEnabled(false)

cmo.setDowngradeUntrustedPrincipals(false)


cd('/SecurityConfiguration/'+DOMAIN_NAME+'/SecureMode/'+DOMAIN_NAME)

cmo.setWarnOnInsecureSSL(true)

cmo.setWarnOnInsecureApplications(true)

cmo.setWarnOnJavaSecurityManager(true)

cmo.setSecureModeEnabled(false)

cmo.setRestrictiveJMXPolicies(true)

cmo.setWarnOnAuditing(true)

cmo.setWarnOnInsecureFileSystem(true)


cd('/JTA/'+DOMAIN_NAME)

cmo.setSecurityInteropMode('default')


cd('/SecurityConfiguration/'+DOMAIN_NAME)

cmo.setDefaultRealm(getMBean('/SecurityConfiguration/'+DOMAIN_NAME+'/Realms/myrealm'))


activate()




createouafusers.py

from weblogic.management.security.authentication import UserEditorMBean, UserReaderMBean


print("Connecting to server …")

connect(ADMIN_USER, ADMIN_PWD ,'t3://'+ ADMIN_LISTEN_ADDRESS +':' + ADMIN_PORT)



atnr = cmo.getSecurityConfiguration().getDefaultRealm().lookupAuthenticationProvider("DefaultAuthenticator")


print("*********Group Creation***********")

group_name = 'cisusers'

try:

print("Creating Group cisusers")

atnr.createGroup('cisusers','OUAF Default Group')

print("Group created successfully!!")

except Exception:

print("Error creating new Group ")



print("*********User Creation***********")

try:

atnr.createUser('system','ouafadmin','System Administrator')

print("User system created successfully!!")

except Exception:

print("Error: User system already exists!!")



print("*********User Creation***********")

try:

atnr.createUser('SYSUSER','sysuser00','Initial User')

print("User SYSUSER created successfully!!")

except Exception:

print("Error: User SYSUSER already exists!!")


try:

atnr.createUser('WAMUSER','wamuser00','WAM User')

print("User WAMUSER created successfully!!")

except Exception:

print("Error: User WAMUSER already exists!!")


try:

atnr.createUser('ODMUSER','odmuser00','ODM User')

print("User ODMUSER created successfully!!")

except Exception:

print("Error: User ODMUSER already exists!!")


print("*********Adding User to New created Group***********")

try:

atnr.addMemberToGroup('Administrators','system')

atnr.addMemberToGroup('Deployers','system')

atnr.addMemberToGroup('Operators','system')

atnr.addMemberToGroup('cisusers','system')

atnr.addMemberToGroup('cisusers','SYSUSER')

atnr.addMemberToGroup('cisusers','WAMUSER')

atnr.addMemberToGroup('cisusers','ODMUSER')

print("User system added to  Group successfully!!")

except Exception:

print("Error: Failed to add User to Group!!")



deployouafapps.py

print("Connecting to server …")

connect(ADMIN_USER, ADMIN_PWD ,'t3://'+ ADMIN_LISTEN_ADDRESS +':' + ADMIN_PORT)


print("*** Deploying SPLService")

edit()

startEdit()


deploy('SPLService', SPLEBASE + '/splapp/applications/SPLService.ear', targets=OUAF_SERVER_NAME, stageMode="stage")


activate()



print("*** Deploying SPLWeb")


startEdit()


progress = deploy('SPLWeb', SPLEBASE + '/splapp/applications/SPLWeb.ear', targets=OUAF_SERVER_NAME, stageMode="stage")


activate()


print("*** Deploying ohelp")

startEdit()


progress = deploy('ohelp', SPLEBASE + '/splapp/applications/ohelp.ear', targets=OUAF_SERVER_NAME, stageMode="stage")


activate()


startEdit()

cd('/AppDeployments/SPLService')

cmo.setDeploymentOrder(100)


cd('/AppDeployments/SPLWeb')

cmo.setDeploymentOrder(200)


cd('/AppDeployments/ohelp')

cmo.setDeploymentOrder(100)


activate()





Starting the application:

Start the weblogic admin server. Also start the nodemanager server.

Now navigate to servers and start wam2400server.


Next go to browser and enter the application URL

https://localhost:6501/ouaf/cis.jsp


If everything is proper, the login screen will open up. 

Login with SYSUSER and password as sysuser00


OUAF Oracle Utilities WAM / ODM 2.4.0.0 installation on Windows

  This blog is for anyone looking to install Oracle Utilities WAM or ODM 2.4.0.0 (Oracle Utilities Workflow and Asset Management) or (Orac...