Ubik Batch Server FAQ
From UbikWiki
(→Miscellaneous) |
|||
Line 92: |
Line 92: | ||
== Development == | == Development == | ||
- | == Miscellaneous == | ||
- | |||
=== How to veto a batch === | === How to veto a batch === | ||
You can veto a batch (stop the execution) in the initialize method invoking method vetoExecution. | You can veto a batch (stop the execution) in the initialize method invoking method vetoExecution. |
Revision as of 18:13, 18 November 2007
Administration
How do I setup logging parameters
Log4j is used as logging framework for the Batch Server, see:
What are the available parameters for Database Pool declarations
Ubik Batch Server used commons-dbcp implementation, see:
How do I set a JDBC connection property
Use the Ubik Web Controler or open <INSTALL_DIR>/config/datasource.xml and add or modify for your pool the parameter connectionProperties(Format of the string must be [propertyName=property;]*:
<parameter> <name>connectionProperties</name> <value>currentSchema=TEST</value> </parameter>
How do I change the retention period for Batches History in Database
Open the file <INSTALL_DIR>/config/config.properties and change:
# Cleanup delay in days for tables BATCH_HEAD and BATCH_TRT CLEANUP_DELAY=30
How do I setup my mail server parameters
Open the file <INSTALL_DIR>/config/mail.xml and change:
<?xml version="1.0" encoding="UTF-8"?> <!-- #Release @VERSION@ at @DATE@ --> <mail> <mailHost>smtp.ubik-ingenierie.com</mailHost> <mailer>UbikBatch</mailer> <mailPort>25</mailPort> </mail>
How do I declare my custom plugin
Open the file <INSTALL_DIR>/config/plugin-manager.xml and add:
<plug-in className="com.ubikingenierie.console.monitoring.plugin.HealthMonitorPlugin" id="com.ubikingenierie.console.monitoring.plugin.HealthMonitorPlugin"> <set-property property="propertyOfClass" value="valueToSet"></set-property> ... <set-property property="otherValue" value="3000000"></set-property> </plug-in>
How do I declare my custom extension
Open the file <INSTALL_DIR>/config/extension-manager.xml and add:
<extension className="com.ubikingenierie.console.si3si.extension.SI3SIExtension" > </extension>
I get the following message on deployment of a big BAR
java.lang.OutOfMemoryError: PermGen space
Ensure you use the last JDK 5 available version Open <INSTALL_DIR>/bin/setEnv.bat or <INSTALL_DIR>/bin/setenv.cfg and set correctly the PermGen space using JAVA_OPTS:
-XX:MaxPermSize=128M
My database type is not correctly detected
Open <INSTALL_DIR>/config/config.properties and set HIBERNATE_CONFIGURED_DIALECT:
# Force a dialect for Hibernate to override auto detection # For DB2 : com.ubikingenierie.console.persistance.hibernate.DB2ExtendedDialect(*) HIBERNATE_CONFIGURED_DIALECT=org.hibernate.dialect.MySQL5InnoDBDialect
(*) : see DB2Dialect.getCurrentTimestampSQLFunctionName() uses Oracle syntax
After a while, Oracle throws this exception: too many open cursors for pool jdbc/console
The Oracle JDBC driver doesn't much like to have its prepared statements cached with Hibernate (see [http://www.hibernate.org/120.html#A10 Hibernate Platform Specific Issues).
Disable PreparedStatement caching for the connection pool. Use Web Controler JDBC Administration page or open <INSTALL_DIR>config/datasource.xml, goto jdbc/console declaration and modifiy parameter poolPreparedStatements:
<parameter> <name>poolPreparedStatements</name> <value>false</value> </parameter>
I have the following messages in the logs
11:49:27,464 WARN LoadContexts? fail-safe cleanup (collections)... org.hibernate.engine.loading.CollectionLoadContext@cd7045<rs=org.hsqldb.jdbc.jdbcResultSet@192e6b6>
Nothing's wrong, it's a small issue that will be resolved in future versions of Hibernate, since it's indirectly a logging issue. You can hide those messages by adding to <INSTALL_DIR>/config/log.properties:
log4j.category.org.hibernate.engine.loading.LoadContexts=ERROR
Development
How to veto a batch
You can veto a batch (stop the execution) in the initialize method invoking method vetoExecution. For example if some conditions for execution are not met.
vetoExecution("NOT A BUG! The treatment has been stopped by batch, functional flag is disabled");
If you want to stop a batch once you are in the exec method, you will have to manage by an applicative way.
How to check if your batch encountered a problem
You can check in the finalizeBatch method if there was a problem in your treatment.
if (!getBatchExecutionContext().getExceptions().isEmpty()) { // do something }
Authors
- Philippe Mouawad