JDeveloper and Fusion Applications Explained (Part 3)

The first two parts of this series covered the installation of JDeveloper for Fusion Applications and the configuration of the integrated WebLogic Domain.This third article will explain some common problems we have seen and how to resolve them.  We will in the process also offer some general tips on how to troubleshoot these types of problems.

The JDeveloper install itself is a pretty well-understood and documented process as there is nothing specific to Fusion Applications involved here.  If something goes wrong, you can probably find an explanation via Google or OTN's forum search.  You might also want to check the Known Issues in the Release Notes.

The installation of the Fusion Applications specific extensions from the Companion zip file is generally no problem either.  Just be sure to let JDeveloper restart itself after the extensions are installed and you should see the new roles pop up in the Role Chooser, and the prompt for the creation of the Domain should show up as well (if you run JDeveloper on Linux, you need to restart manually).

The Domain creation itself is where we have seen people run into a few problems that are the focus of this post.


Where to look for log files

Errors that you may encounter either appear in the JDeveloper console or in one of the .log and .err files created by the Domain Creation tool or WLS itself.  These files can be found in the JDeveloper SYSTEM directory in one of two relevant subdirectories:
  • DefaultDomain\servers\DefaultServer\logs for the integrated WebLogic server
  • o.apps.fadev.11.1.1 for the domain creation tool itself

Error land Log Files

Error and Log Files

As explained in the previous posts of this series, the SYSTEM directory is created in the directory that you defined in the JDEV_USER_HOME environment variable.

Use the Right Python Version

Make sure that you are using the right version of Python.  If you use 2.4.x or 3.x, you will likely get weird errors from the Python code that the domain creation wizard calls.  An example would be:

 [03:53:48 PM] Traceback (most recent call last):
 [03:53:48 PM]   File "C:\Oracle\Middleware\jdeveloper\fadev\bin\FADevConfigure.py", 
                 line 865, in ?
 [03:53:48 PM]     extendDefaultDomain()
 [03:53:48 PM]   File "C:\Oracle\Middleware\jdeveloper\fadev\bin\FADevConfigure.py", 
                 line 508, in extendDefaultDomain
 [03:53:48 PM]     p = subprocess.Popen([gv.wlstCmd,wlstScript,'-d',gv.domainHome,'-s',
                   gv.jdevSystemDir,'-p',gv.propertyFile,verboseOpt],stdout=fout,
                   stderr=ferr)
 [03:53:48 PM]   File "C:\Python24\lib\subprocess.py", line 543, in __init__
 [03:53:48 PM]     errread, errwrite)
 [03:53:48 PM]   File "C:\Python24\lib\subprocess.py", line 706, in _execute_child
 [03:53:48 PM]     startupinfo)
 [03:53:48 PM] WindowsError: [Errno 193] %1 is not a valid Win32 application
 [03:53:48 PM] Domain configuration exited with status 1.

WLS Does Not Start Up

As part of the domain creation the integrated WebLogic Server needs to be temporarily started up to configure the LDAP authenticator.  If you see the following "endless" loop in the console window, it is likely due to WLS not getting started.

[05:14:14 PM] ... executing startWebLogic script ...
[05:14:14 PM] ... C:\projects\system11.1.1.6.39.63.37\DefaultDomain\bin\startWebLogic.cmd
[05:14:14 PM] ... sleeping for 90 seconds while server starts up .........
[05:14:14 PM] ... AdminServer log files still does not exist, sleep another 10 seconds
[05:14:14 PM] ... AdminServer log files still does not exist, sleep another 10 seconds
[05:14:14 PM] ... AdminServer log files still does not exist, sleep another 10 seconds
[05:14:14 PM] ... AdminServer log files still does not exist, sleep another 10 seconds

In that case, check the fadev_config_startup_1.err (and .out) file for possible causes.  The following sections will list a few possible cases


QTJava.zip in CLASSPATH

The fadev_config_startup_1.err file contains a message like
\Java\jre6\lib\ext\QTJava.zip was unexpected at this time
Make sure you don't have QTJava.zip in your CLASSPATH.  This is a QuickTime library and often installed on Windows systems, and if it is in the CLASSPATH, the WebLogic Server will not start up.

Syntax Error in Environment Variable Settings

The fadev_config_startup_1.err file contains this error:

-Xmx1024m was unexpected at this time.

 

Make sure the environment variable values syntactically correct, especially the ones controlling the memory settings.  For example, if you were to put quotes ("") around the value for USER_MEM_ARGS (as is done in Linux), you will find that the domain configuration tool cannot start WLS.

Bad Memory Settings

If fadev_config_startup_1.err contains

Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)
Could not create the Java virtual machine.
and fadev_config_startup_1.out shows this message

starting weblogic with Java version:
Starting WLS with line:
C:\Oracle\MIDDLE~1\JDK160~1\bin\java -client -Xms256m -Xmx1024m -XX:MaxPermSize=1024m 
-XX:CompileThreshold=8000 -Dweblogic.Name=DefaultServer -...
Error occurred during initialization of VM
Could not reserve enough space for object heap

 the problem is your memory settings.


The owsm_mds Schema

One little detail that's easy to miss is ensure the database connection information for owsm_mds that is specified in the Domain Creation Wizard is actually correct.  Unlike the other schemas that the wizard asks about, this schema in production environments is not actually in the Fusion database, but rather in the IDM database.  The Developer's Guide talks about this in more detail in this section (2.2.1.6 in Rel 5).

If the connection to the owsm_mds schema is incorrect, you might find the following in the console log:

[04:05:47 PM] ... LDAP configuration: create default authenticator
[04:05:47 PM] log file: C:\projects\system11.1.1.6.39.62.68\o.apps.fadev.11.1.1\
              fadev_execConfigDomain_defauth.out
[04:05:47 PM] ... wlst LDAP configuration (create default authenticator) failed <<<<<<<<<<
[04:05:47 PM] 1
[04:05:47 PM] Check log files
[04:05:47 PM] C:\projects\system11.1.1.6.39.62.68\o.apps.fadev.11.1.1\
              fadev_execConfigDomain_defauth.out
[04:05:47 PM] C:\projects\system11.1.1.6.39.62.68\o.apps.fadev.11.1.1\
              fadev_execConfigDomain_defauth.err
[04:05:47 PM] ... executing stopWebLogic script ...
[04:05:47 PM] Domain configuration exited with status 1.

And following the advice given in that message, fadev_execConfigDomain_defauth.err reveals this error:

Apr 2, 2013 4:05:38 PM oracle.security.jps.internal.common.util.
XmlSchemaValidationUtil$StrictErrorHandler warning
WARNING: Failed to validate the xml content. SchemaLocation: 
schemaLocation value = 'http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_1.xsd' 
must have even number of URI's. Location: line 3 column 96.
Problem invoking WLST - Traceback (innermost last):
 File "C:\Oracle\Middleware\jdeveloper\fadev\bin\FADevConfigDomain.py", line 1063, in ?
 File "C:\Oracle\Middleware\jdeveloper\fadev\bin\FADevConfigDomain.py", line 968, 
     in runIt
 File "C:\Oracle\Middleware\jdeveloper\fadev\bin\FADevConfigDomain.py", line 711, 
     in addGPA
 File "C:\Oracle\MIDDLE~1\ORACLE~1\common\wlst\wsmManage.py", line 520, in 
     listPolicySets
 File "C:\Oracle\MIDDLE~1\ORACLE~1\common\wlst\lib\ora_util.py", line 51, in 
raiseScriptingException
OracleScriptingException: The MBean oracle.wsm:*,name=WSMDocumentManager,
type=Repository was not found.

In general, it is important to verify that the connection information provided to the Domain Creation wizard for database and LDAP is correct and that the services are up and running (there is an open enhancement request to add a "Test" button to the wizard).


Bad Python Install

One problem that a few people reported via Oracle Support and in comments to the second part of this blog post series was ultimately tracked down to an install problem with Python.  First the symptoms:  the domain configuration fails with either

[12:58:53 PM] Integrated Weblogic domain processing completed successfully.
[12:58:53 PM] Configuring domain with "C:\Oracle\Middleware\jdeveloper\fadev\bin\
              FADevConfigure.py -i -m C:\Oracle\Middleware -s C:\projects\
              system11.1.1.6.39.62.68\"
[12:58:53 PM] Configuring domain for Fusion Applications Development ...
[12:58:53 PM] ... initialize
[12:58:53 PM] ... checkMwHome
[12:58:53 PM] ... MW_HOME specified in MW_HOME environment variable: C:\Oracle\Middleware
[12:58:53 PM] ... Using MW_HOME C:\Oracle\Middleware
[12:58:53 PM] ... getSAValues
[12:58:53 PM] ... checkPropFile
[12:58:53 PM] ... Default property file: C:\Users\osteinme\fusion_apps_wls.properties
[12:58:53 PM] ... Property file does not exist: C:\Users\osteinme\fusion_apps_wls.
                  properties
[12:58:53 PM] ... Default property location is: C:\Users\osteinme\fusion_apps_wls.
                  properties
[12:58:53 PM] ... or execute script using -p <property file>
[12:58:53 PM] ... or set FADEV_CONFIG_PROPERTIES environment variable to location of file
[12:58:53 PM] ... Use fully quailfied file path
[12:58:53 PM] Domain configuration exited with status 301.

or


[05:26:58 PM] Integrated Weblogic domain processing completed successfully. 
[05:26:58 PM] Configuring domain with "D:\Oracle\Middleware\jdeveloper\fadev\bin\
              FADevConfigure.py -i -m D:\Oracle\Middleware -s D:\Oracle\Middleware\
              fauser\system11.1.1.6.39.62.68\" 
[05:26:59 PM] Configuring domain for Fusion Applications Development ... 
[05:26:59 PM] ... initialize 
[05:26:59 PM] ... checkMwHome 
[05:26:59 PM] ... MW_HOME specified in MW_HOME environment variable: D:/Oracle/Middleware 
[05:26:59 PM] ... Using MW_HOME D:/Oracle/Middleware 
[05:26:59 PM] ... getSAValues 
[05:26:59 PM] ... checkPropFile 
[05:26:59 PM] Traceback (most recent call last): 
[05:26:59 PM] File "D:\Oracle\Middleware\jdeveloper\fadev\bin\FADevConfigure.py", 
              line 848, in <module> 
[05:26:59 PM] checkPropFile() 
[05:26:59 PM] File "D:\Oracle\Middleware\jdeveloper\fadev\bin\FADevConfigure.py", line 212, 
              in checkPropFile 
[05:26:59 PM] defaultPropFile= os.path.join(os.getenv('HOME'),'fusion_apps_wls.properties') 
[05:26:59 PM] File "D:\Python27\lib\ntpath.py", line 96, in join 
[05:26:59 PM] assert len(path) > 0 
[05:26:59 PM] TypeError: object of type 'NoneType' has no len() 
[05:26:59 PM] Domain configuration exited with status 1.

The problem in these cases is that the Python script  FADevConfigure.py does not receive the parameters that are passed to it, and so it goes down the wrong code path.  The root cause is a bad Windows registry key value (see this Stackoverflow discussion).  If you see these errors, check the values for keys like

HKEY_CLASSES_ROOT\Python.File\shell\open\command
HKEY_CLASSES_ROOT\Applications\python26.exe\shell\open\command

The data needs to be

"C:\python27\python.exe" "%1" %*

The actual location and version of Python can be different, but the important part is that the value ends with %* (it represents the parameters to be passed).

The registry editor "regedit" has search capabilities. It's easy to find all keys that contain the string "python.exe" and fix those that are incorrectly defined.

Recovery from Errors

If the Domain creation and configuration failed and you have identified the cause, you can just exit out of JDeveloper, delete the SYSTEM directory (which contains the Domain) and start over with the corrected configuration or setup data.

If you encounter any other errors and cannot decipher the messages, feel free to ask for advice in our discussion forum.

References:
Comments:

Hi,

we are trying to create domain but we end up with the error shown in The owsm_mds Schema error above. but we are providing schema( tested logging in fusion database) and ldap (tested using jexplorer) details correctly but still we end up with the same error. Could you please advise us what else we need to make sure to complete the domain with out having error.

Thank You.

Posted by guest on June 25, 2013 at 08:39 PM PDT #

Hello and thanks for your comment.

The only time we have seen owsm_mds-related issues was when the machine running the WLS could not connect to that schema. Either because the password for the schema was wrong (case sensitve!) or because the database connection was wrong -- pointing to the wrong db.

When you say you tested the connection to the db, did you test from the same machine that your WLS is on, and did you verify that the schema is in fact in the Fusion DB (by default it isn't as the Fusion install puts it into the IDM DB).

If this doesn't help, could you post the log file to a forum thread in our OTN forum at https://forums.oracle.com/community/developer/english/fusion_applications/customizations__extensions_and_integrations please (handles lengthy pre-formatted text better than the blog commenting system). Thanks!

Posted by Oliver Steinmeier on June 26, 2013 at 04:54 PM PDT #

Post a Comment:
  • HTML Syntax: NOT allowed
About

Follow us on twitter Fusion Applications Extensibility, Customizations and Integration forum Fusion Applications Dev Relations YouTube Channel
This blog offers news, tips and information for developers building extensions, customizations and integrations for Oracle Fusion Applications.

Search

Categories
Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
4
5
6
8
11
12
13
15
16
18
19
20
22
23
24
25
26
27
28
29
30
   
       
Today