Appendix K. Appendix - Troubleshooting, hints and tips for deployers

K.1. How do I change the Tomcat heap size
K.2. How do I change Tomcat ports to avoid clashes?
K.3. How can I avoid specifing lots of properties for ANT targets at the command-line?
K.4. I get a server-side error concerning an unknown resource that I don't recognise
K.5. When using a client I get an error concerning an unknown resource
K.6. When using a client I get an error concerning an unknown activity
K.7. I get an error concerning a server error and the server logs cite an activity class not being found
K.8. When using a client I get an error concerning a server error
K.9. I get an AxisFault when deplying OGSA-DAI OMII-UK
K.10. I get [axis-admin] log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle). warnings when deploying OGSA-DAI Axis services
K.11. I get Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled." warnings

K.1. How do I change the Tomcat heap size

If manipulating large sets of data the Java Virtual Machine may run out of memory. This can be alleviated by increasing the maximum memory heap size for the virtual machine using the XMxSIZE flag. For example:

$ java -Xmx70M ...

specifies a heap size of 70M. A similar XMsSIZE flag sets the initial heap size.

K.2. How do I change Tomcat ports to avoid clashes?

Tomcat port numbers are specified in the file

TOMCAT/conf/server.xml

If you want to run more than one Tomcat simultaneously then you need to change three port numbers to avoid clashes.

Firstly change the port in the following line - change 8005 to some other value.

<Server port="8005" shutdown="SHUTDOWN" debug="0">

Secondly, change the port in the following element. Change 8080 to some other value.

    <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
    <Connector port="8080"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               debug="0" connectionTimeout="20000" 
               disableUploadTimeout="true" />

Finally, change the port in the following element. Change 8008 to some other value.

    <!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" 
               enableLookups="false" redirectPort="8443" debug="0"
               protocol="AJP/1.3" />

K.3. How can I avoid specifing lots of properties for ANT targets at the command-line?

ANT property files can be used to save having to provide arguments to OGSA-DAI ANT targets at the command line. If the command is of form:

$ ant myCommand -Darg1=value1 -Darg2=value2

Then you can create a property file (my.properties for example) with the contents:

arv1=value1
arg2=value2

And then run:

$ ant -propertyfile my.properties myCommand

Note that properties can still be provided to ANT via the command-line and these take precedence over the ones in the property file, so for example you could run:

$ ant -propertyfile my.properties -Dargv1=myValue
$ ant -propertyfile my.properties -Dargv1=myOtherValue

K.4. I get a server-side error concerning an unknown resource that I don't recognise

OGSA-DAI's default file-based resource persistence components assume that all files in the resource files configuration directory (see Section G.1, “Resource files name and location”) are resource configuration files. If you have temporary files created by a text editor in this directory (e.g. someFile~ or #someFile#) then these too will be considered as resource configuration files even if they are not intended to be.

When this occurs you will typically see an error similar to the following in the server-side logs:

There is a problem with the content of persistence file 
/home/michaelj/tomcat/webapps/dai/WEB-INF/etc/dai/resources/FileResource~.

Note that such errors do not prevent OGSA-DAI from initialising but if concerned you should just remove the unwanted files from the directory.

K.5. When using a client I get an error concerning an unknown resource

If a resource has been configured incorrectly then clients may be informed by the OGSA-DAI server that the resource is unknown. The OGSA-DAI server logs will provide information about why the configuration is incorrect. For example if the creationTime has value zonk then the logs will display an error message similar to:

#1185803462588:5# There is a problem with the content of persistence file /home/michaelj/test/tomcatAxis14/webapps/dai/WEB-INF/etc/dai/resources/Zonk.
#1185803462588:5# zonk is an illegal value.
#1185803462588:5# java.lang.NumberFormatException: For input string: "aaa"

If the data resource class cannot be found then the logs will display an error message similar to:

#1185803652710:2# There was a problem creating resource Zonk of type uk.org.ogsadai.DATA_RESOURCE.
#1185803652710:2# uk.org.ogsadai.resource.dataresource.file.FileDataResourc is an illegal value.
#1185803652710:2# Cannot find Java class uk.org.ogsadai.resource.dataresource.file.FileDataResourceNonExistantClass

Alternatively errors in resource configuration may only be realised when a request is submitted that contains activities that use the resource. e.g. if a file data resource configuration omits the dai.data.resource.path required by file resources then the server-side logs will contain an error of form:

2007-07-30 15:11:04,918 WARN  event.LoggingActivityListener [pool-1-thread-2,warnExceptionAndChildren:?] #1185804664917:5# An unchecked exception was caught during activity processing.
2007-07-30 15:11:04,918 WARN  event.LoggingActivityListener [pool-1-thread-2,warnExceptionAndChildren:?] #1185804664917:5# Expected dai.data.resource.path but could not be found.

This will be manifested client-side in the request status e.g.:

A problem has occured...
[1185804665299:2] uk.org.ogsadai.client.toolkit.REQUEST_COMPLETED_WITH_ERROR : ogsadai-114177657b5

The actual request execution status will contain more information in the entry for the activity that tried to use the resource.

K.6. When using a client I get an error concerning an unknown activity

Problems with activity configurations are manifested at the client-side as follows. For example:

[1185805382056:3] uk.org.ogsadai.client.toolkit.REQUEST_ERROR : ogsadai-11417822efa
[1185805382057:4] uk.org.ogsadai.GENERAL_REQUEST_USER_EXCEPTION
[1185805382057:5] uk.org.ogsadai.GENERAL_ACTIVITY_USER_EXCEPTION
[1185805382057:6] uk.org.ogsadai.UNSUPPORTED_ACTIVITY : uk.org.ogsadai.ListDirectoryX, FileResource

On the server this is manifested in the logs as follows. For example:

#1185805381799:4# A user problem has occurred during request processing.
#1185805381799:4# A user problem has occured during activity processing.
#1185805381799:4# An activity named uk.org.ogsadai.ListDirectoryX is not supported by the resource FileResource

There are two possible causes for this.

K.7. I get an error concerning a server error and the server logs cite an activity class not being found

This error may be manifested in the server logs as follows:

#1185805812851:2# A problem has occurred during request processing.
#1185805812851:2# There was a problem creating the activity instance (activity name uk.org.ogsadai.ListDirectory, instance name uk.org.ogsadai.ListDirectory-ogsadai-1141788bcad).
#1185805812851:2# java.lang.ClassNotFoundException: uk.org.ogsadai.activity.file.ListDirectoryActivityXXX

This means that the activity configuration specifies an activity class name that does not exist or cannot be found by the OGSA-DAI server.

K.8. When using a client I get an error concerning a server error

This may be manifested client-side as follows:

[1185805813092:1] uk.org.ogsadai.client.toolkit.REQUEST_ERROR : ogsadai-1141788c349
[1185805813092:2] uk.org.ogsadai.SERVER_ERROR_WITH_HOST : 1185805812851:2, coal.epcc.ed.ac.uk

This means there is a problem on the OGSA-DAI server and you (or the OGSA-DAI server administrator) should check the OGSA-DAI server logs for the error with the given ID.

K.9. I get an AxisFault when deplying OGSA-DAI OMII-UK

If you get the following when running buildDeployWARAndServices:

[echo]   Checking URL https://garnet.epcc.ed.ac.uk:18433/index.jsp
[echo] Tomcat is running!
[echo] Deploying services...
[axis-admin] Processing file /home/michaelj/ogsa-dai-cvs/releases/axis/build/ogsadai-3.0-axis-1.4-src/build/ogsadai-3.0-axis-1.4-bin/build/deploy/ws-addressing.wsdd
[axis-admin] AxisFault
[axis-admin]  faultCode: {http://xml.apache.org/axis/}HTTP
[axis-admin]  faultSubcode: 
[axis-admin]  faultString: (404)/dai/services/AdminService
[axis-admin]  faultActor: 
[axis-admin]  faultNode: 
[axis-admin]  faultDetail: 
[axis-admin]    {}:return code:  404
..

This arises as the installer drops an OGSA-DAI WAR file into Tomcat, waits for Tomcat to unpack the WAR file then attempts to deploy OGSA-DAI services. If running on a slow host Tomcat might not have enough time to unpack the WAR. You can just run deployServices using the same arguments as buildDeployWARAndServices to deploy the services.

K.10.  I get [axis-admin] log4j:WARN No appenders could be found for logger (org.apache.axis.i18n.ProjectResourceBundle). warnings when deploying OGSA-DAI Axis services

This is a warning message that can safely be ignored.

K.11. I get Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled." warnings

This is a warning message that can safely be ignored. It is displayed when Apache Axis cannot find this optional JAR. Please refer to the Apache Axis documentation for more details.