Thursday, May 27, 2010

WebLogic Portal & Non-Pointbase RDBMS

WebLogic Portal comes with an evaluation license of Pointbase RDBMS for now. I am not sure how long WebLogic products will bundle Pointbase RDBMS for the sample applications and domain. I guessing Oracle will change their strategy and bundle open source Derby RDBMS with WebLogic products as the evaluation license of Pointbase that comes with WebLogic products will limit the database size to 30KB. This is mainly to discourage people from using Pointbase in production environments. Needless to say you can purchase additional license from Pointbase directly.

Especially with WebLogic Portal most people use their own RDBMS like Oracle, MySQL, SQL Server etc. In that case you have to specify or reconfigure WebLogic about the location of the database objects.
  • During the domain creation process they will give you an option to specify the database configuration information for all the datasources that portal require like p13nDataSource, portalDataSource, cgDataSource etc. In the subsequent screen of the configuration wizard they will give you an option to run the DB scripts to create your database objects if the user configured for the datasources in the previous screen is setup with right permissions. More information about this process can be found here. The following screen shot show the a sample JDBC Datasource configuration screen from the configuration wizard.


  • If you had already created the domain and if you wish to change the datasources configuration then you should use the administration console or WLST. Also if you did not run the DB scripts during domain creation you can use create_db.cmd/sh under the domain folder to create the database objects. More information about this process can be found here.
But especially with WebLogic Portal 10.3.2, the point to note when you are configuring a non-Pointbase database is that you should also customize the domain's RDBMS Security Settings in the domain configuration wizard to change the database information configured to point to your database. The default option with the configuration wizard is to use the pointbase database for the RDBMS security store even if you reconfigure your datasources under the JDBC screens. If not your server might not start as the config.xml will have Pointbase specific configuration. Then you may have to use WLST offline mode or directly edit the config.xml to start your server. The error might look like the following example:

<May 26, 2010 1:37:59 PM CDT> <Error> <Security> <BEA-090870> <The realm "myrealm" failed to be loaded: weblogic.security.service.SecurityServiceException: com.bea.common.engine.ServiceInitializationException: <openjpa-1.1.1-SNAPSHOT-r422266:807362 fatal internal error> org.apache.openjpa.util.InternalException: There was an error when invoking the static getInstance method on the named factory class "kodo.jdbc.kernel.KodoJDBCBrokerFactory". See the nested exception for details..
weblogic.security.service.SecurityServiceException: com.bea.common.engine.ServiceInitializationException: <openjpa-1.1.1-SNAPSHOT-r422266:807362 fatal internal error> org.apache.openjpa.util.InternalException: There was an error when invoking the static getInstance method on the named factory class "kodo.jdbc.kernel.KodoJDBCBrokerFactory". See the nested exception for details.
at weblogic.security.service.CSSWLSDelegateImpl.initializeServiceEngine(CSSWLSDelegateImpl.java:342)
at weblogic.security.service.CSSWLSDelegateImpl.initialize(CSSWLSDelegateImpl.java:221)

I shall post a sample WLST offline script to modify RDBMS security store configuration after the domain is created in a later post. The following screen shots shows the option you should select customize RDBMS security store settings and the respective screen for that settings.