ebxmlrr - Frequently Asked Questions

  1. Why do I get NullPointerException when I execute the "createDemoDB" target?
  2. Can ebxmlrr server run on Oracle database?
  3. Can ebxmlrr server run on MySQL?
  4. Why is my Registry Browser not showing items in the ObjectType drop down list in the Find Parameters Panel?
  5. Why do I get a RegistryResponse message with java.lang.OutOfMemoryError?
  1. Why do I get NullPointerException when I execute the "createDemoDB" target?

    Ans: See the red text in System Requirements section of the setup guide .
  2. Can ebxmlrr server run on Oracle database?

    Ans: Yes, but only the latest source checked out from CVS source tree and beta release support deployment on Oracle 9i database. The versions below 9i are not supported. You need to do some modifications on the script for creating the database:
    • Open <ebxmlrr_home>/conf/database.sql and goes to the the end of the file. Comment all the lines of statements that create indexes on primary key, i.e.:

      -- CREATE INDEX Association_id ON Association(id);

      ...

      -- CREATE INDEX User_id ON User_(id);

    Then follows the same instructions in the setup guide.

  3. Can ebxmlrr server run on MySQL database?

    Ans: No. Although MySQL is a free, lightweight and popular database, its limitations make it cannot be the database of ebxmlrr. The main limitations make it not suitable for ebxmlrr:
    • It does not support view
    • It does not allow table columns wider than 255 characters

    In near future we will not consider to modify the database schema to accommodate the limitations of MySQL.

  4. Why is my Registry Browser not showing items in the ObjectType drop down list in the Find Parameters Panel?

    Ans: This is indicative of your database not having the latest canonical ObjectType ClassificationScheme.

    If you are the registry operator then please checkout latest version of misc/samples/SubmitObjectsRequest_objectTypesSchemes.xml and then rebuild your registry database from using following steps:

    1. Stop Tomcat
    2. build.sh cleandb
    3. Start Tomcat
    4. build.sh createDemoDB (or build.sh createMinDB for creating a minimal database faster but with less demo data)

    This puts the latest ObjectType scheme in your database and the browser will now show the items in the ObjectType drop down list.

  5. Why do I get a RegistryResponse message with java.lang.OutOfMemoryError?

    Ans: Most likely you did not allocate enough memory for your servlet container. If you are using Tomcat, you can e.g. set the environment variable CATALINA_OPTS to -Xmx512m . Don't forget to restart Tomcat after that. If you use Jetty, setting the environment variable JAVA_OPTIONS or JETTY_OPTIONS (depending on the start script you are using) should achieve the same.

    If you still get this error and you are running the ebxmlrr build script, it could be that the build target does not allocate enough memory for its Java process. You can change that by editing the build target definition in the file build.xml . Here is an example how a build target definition usually looks like:

                  <target name="loadExtSchemes" >
                  <echo message="Loading External Schemes"/>
                  <java classname="com.sun.ebxml.registry.interfaces.soap.SOAPSender" fork="yes" failonerror="true">
                  <sysproperty key="http.proxyHost" value="${proxyHost}"/>
                  <sysproperty key="http.proxyPort" value="${proxyPort}"/>
                  <sysproperty key="org.apache.commons.logging.Log" value="${apacheLog}"/>
                  <arg line="req=${samples}/SubmitObjectsRequest_extSchemes.xml alias=RegistryOperator localCall=${localCall} url=${ebxmlrr.url.soap} res=response.xml " />
                  <classpath refid="server.run.classpath"/>
                  </java>
                  </target>
                

    You can increase the available memory for this target in two ways:

    1. Add the parameter maxmemory to the java target like this:

    <java classname="com.sun.ebxml.registry.interfaces.soap.SOAPSender" fork="yes" failonerror="true" maxmemory="256m">

    2. Add a jvmarg line to the java target like this:

                  <java classname="com.sun.ebxml.registry.interfaces.soap.SOAPSender" fork="yes" failonerror="true">
                  <sysproperty key="http.proxyHost" value="${proxyHost}"/>
                  <sysproperty key="http.proxyPort" value="${proxyPort}"/>
                  <sysproperty key="org.apache.commons.logging.Log" value="${apacheLog}"/>
                  <arg line="req=${samples}/SubmitObjectsRequest_extSchemes.xml alias=RegistryOperator localCall=${localCall} url=${ebxmlrr.url.soap} res=response.xml " />
                  <classpath refid="server.run.classpath"/>
                  <jvmarg line="-Xmx256m"/>
                  </java>