Category Archives: Weblogic

Segmentation fault (11) with mod_weblogic and ssl weblogic

Recently I’ve stumbled upon a strange one. We have setup an OHS in front of OBIEE, on different machine to enable caching, SSL and fast failover (switching between two synced OBIEE servers). We use /em and /console links to redirect to the weblogic Enterprise Manager and Administration Console. Until now we used the standard non SSL ports for this. We got a notification that all traffic from our server should be encrypted using SSL. As OHS and OBIEE are on different servers, we needed to configure SSL on the weblogic ports 7001 and 9704.

Enabling SSL on Weblogic was easy, as I will explain in a later post. Now I needed to configure mod_weblogic to communicate to weblogic on the ssl port. As our OHS (Oracle HTTP Server) installation is standard, I tried to enable the mod_weblogic to connect to weblogic on a ssl port, using the following configuration:

<Location /console>
  <IfModule mod_weblogic.c>
    SetHandler weblogic-handler
    WebLogicHost hostname
    WebLogicPort 7002
    SecureProxy ON
    WlSSLWallet "path_to_oracle_wallet"

I kept getting the following error every time a request was made:

[Tue Dec 03 13:54:47 2013] [notice] child pid 21617 exit signal Segmentation fault (11)

This was very strange because everything was working fine, I was able to login to the console. After a little digging it seems that the plugin is to blame. After I downloaded the plugin from the Oracle Technology Network and modified the mod_wl_ohs.conf to include the new plugin, the error in log file was gone, and it seemed that everything was working faster.

Will have to see if this interferes with normal OBIEE operation…

Configure RestFull Services on Apex Listener

I had to configure Apex Listener to work with RestFull Services. After a lot of hours of debugging I managed to make my Apex Listener on Weblogic to respond to the services.

A think that helped me a lot in all this debugging was the Apex Standalone server (if your environement is not in production or dev you can modify that as well) started in the debug mode. Basically you have to change the defaults.xml file in the Apex Listnere configdir and enable the on screen display:

<entry key="debug.printDebugToScreen">true</entry>

The steps to make it all work are the following:

1. Change directory to your apex installation and connect to the database and run apex_rest_config.sql and set the password for the APEX_LISTENER and APEX_REST_PUBLIC_USER users.
Note: If you do this step after step 2, be sure to unlock the two users because they will get locked when Apex Listener will try to connect with the wrong password.

2. Deploy Apex to Weblogic according to the official documentation here:
Note: Be sure to enter the correct users and passwords.

3. In our case, there were a lot of Workspaces created before installing and enabling RestFull Services. I think that for all the Workspaces that are created before enabling RestFull Services or created on the same Apex Instance but from another deployment that does not have RestFull Services (like Apache) the url-mappings are not correct. If you try to test the service on a old Workspace you will get the following error:

Request Path passes syntax validation
Mapping request to database pool: PoolMap [_poolName=apex, _regex=null, _workspaceIdentifier=null, _failed=false, _lastUpdate=-1, _template=null, _type=REGEX]
Applied database connection info
Attempting to process with PL/SQL Gateway
Not processed as PL/SQL Gateway request
Attempting to process as a RESTful Service
Determining if request can be dispatched as a Tenanted RESTful Service
Request path has one path segment, continuing processing
No Tenant Principal established yet, continuing processing
APEX_LISTENER pool exists, continuing processing
No matching tenant found for: travel, cannot dispatch
No candidate found for: GET travel/hr/empinfo/ in context: http://localhost:8080/apex/

In the above example travel is the Workspace.

For the restfull services to work on old workspaces you will have to create the mappings manually according to the documetnation: In our example you should run:

java -jar apex.war map-url --type base-path --workspace-id travel /travel apex

And that should fix the issue.

< Line 28, Column 49 >: XML-20190: (Fatal Error) Whitespace required.

While configuring Active Directory in weblogic and obtaining group membership from Database tables, after numerous configurations, deletes and restarts, when I tried configuring the virtual adapter using I ran in the following error:

Exception in thread "main" org.xml.sax.SAXParseException: <Line 28, Column 49>: XML-20190: (Fatal Error) Whitespace required.

After a lot of digging I’ve noticed that the adapterTemplate file did not have a space between the xml variables. After adding the space everything went fine.

Hope this helps you not to loose too much time on a simple mistake.