IBM Liberty Server and ODM product
Server Creation
WebSphere\Liberty\bin\server create ODMWLP88, a server ODMWLP88 will created (one more dir ODMWLP88 can be found under WebSphere\Liberty\usr\servers).
Start & Stop
- Start server: server start ODMWLP88
- Stop server: server stop ODMWLP88
Server can be found under the dir: WebSphere\Liberty\usr\servers, shared resources coming from the dir: WebSphere\Liberty\usr\shared\resources which includes some jdbc drivers, all deployed apps can be found under the ODMWLP88\apps dir.
Configuration
The server config file server.xml is at the root of the ODMWLP88 server dir.
- features
- httpEndpoint
- jdbcDriver, library, dataSource
- managedExecutorService??
- basicRegistry for groups and permissions
- applications:
- DC: decisioncenter and teamserver
- RES: res
- Testing and Simulation: testing and DecisionRunner
- HTDS: DecisionService
Deployment
Drop all wars into the apps dir. (can we drop them into drops dir as well?)
Logs
Log files can be found under the WebSphere\Liberty\usr\servers\ODMWLP88\logs dir.
Databases
Derby, H2 or DB2
Reference
Appendix
Sample server xml.
<server description="new server">
<!-- Enable features -->
<featureManager>
<feature>jsp-2.2</feature>
<!-- Enable features required for ODM 8.8 Decision Center -->
<feature>servlet-3.0</feature>
<feature>jsp-2.2</feature>
<feature>jdbc-4.0</feature>
<feature>appSecurity-1.0</feature>
<feature>jaxrs-1.1</feature>
<feature>concurrent-1.0</feature>
<feature>jndi-1.0</feature>
<feature>ssl-1.0</feature>
<!-- Enable features required for ODM 8.8 Decision Server -->
<feature>servlet-3.0</feature>
<feature>jsp-2.2</feature>
<feature>jdbc-4.0</feature>
<feature>appSecurity-1.0</feature>
<feature>jaxrs-1.1</feature>
<!-- Enable features required for ODM 8.8 Decision Runner -->
<feature>concurrent-1.0</feature>
<feature>localConnector-1.0</feature>
</featureManager>
<!-- Endpoint -->
<httpEndpoint id="defaultHttpEndpoint"
host="*"
httpPort="9080"
httpsPort="9443" />
<!-- ODM 8.8 - Decision Center - Derby Data Source -->
<!-- Un-comment the following section if you wish to use the DERBY Database -->
<!--
<jdbcDriver id="DerbyJdbcDriver" libraryRef="DerbyLib"/>
<library id="DerbyLib" filesetRef="DerbyFileset"/>
<fileset id="DerbyFileset" dir="${shared.resource.dir}/derby" includes="derby.jar"/>
<dataSource id="jdbc/ilogDataSource" isolationLevel="TRANSACTION_READ_COMMITTED" jndiName="jdbc/ilogDataSource" jdbcDriverRef="DerbyJdbcDriver">
<properties
databaseName="${server.config.dir}/databases/derby/rtsdb"
createDatabase="create"
user="rtsdbUser"
password="rtsdbUser"/>
</dataSource>
<dataSource id="jdbc/resdatasource" isolationLevel="TRANSACTION_READ_COMMITTED" jndiName="jdbc/resdatasource" jdbcDriverRef="DerbyJdbcDriver">
<properties
databaseName="${server.config.dir}/databases/derby/resdb"
createDatabase="create"
user="resdbUser"
password="resdbUser"/>
</dataSource>
-->
<!-- ODM 8.8 - Decision Center - H2 Data Source (Not supported officially, but FAST) -->
<!-- Un-comment the following section if you wish to use the H2 Database -->
<jdbcDriver id="H2Driver" javax.sql.DataSource="org.h2.jdbcx.JdbcDataSource" libraryRef="h2-lib"/>
<library id="h2-lib">
<fileset dir="${shared.resource.dir}/h2" includes="h2-1.4.188.jar"/>
</library>
<dataSource id="h2-dc" jndiName="jdbc/ilogDataSource" type="javax.sql.DataSource" jdbcDriverRef="H2Driver">
<properties password="rtsdbUser" url="jdbc:h2:file:${server.config.dir}/databases/h2/rtsdb" user="rtsdbUser"/>
</dataSource>
<dataSource id="h2-ds" jndiName="jdbc/resdatasource" type="javax.sql.DataSource" jdbcDriverRef="H2Driver">
<properties password="resdbUser" url="jdbc:h2:file:${server.config.dir}/databases/h2/resdb" user="resdbUser"/>
</dataSource>
<!-- Managed executor service for Decision Runner -->
<managedExecutorService jndiName="concurrent/drExecutorService"/>
<!-- ODM 8.8 - Groups and Permissions -->
<basicRegistry id="basic" realm="customRealm">
<!-- Decision Center Security -->
<user name="rtsAdmin" password="rtsAdmin"/>
<user name="rtsConfig" password="rtsConfig"/>
<user name="rtsUser1" password="rtsUser1"/>
<user name="admin" password="admin"/>
<group name="rtsAdministrator">
<member name="rtsAdmin"/>
<member name="admin"/>
</group>
<group name="rtsInstaller">
<member name="rtsAdmin"/>
<member name="rtsConfig"/>
<member name="admin"/>
</group>
<group name="rtsConfigManager">
<member name="rtsAdmin"/>
<member name="rtsConfig"/>
<member name="admin"/>
</group>
<group name="rtsUser">
<member name="rtsAdmin"/>
<member name="rtsConfig"/>
<member name="rtsUser1"/>
<member name="admin"/>
</group>
<!-- Rule Execution Server security -->
<user name="resAdmin" password="resAdmin"/>
<user name="resDeploy" password="resDeploy"/>
<user name="resMonitor" password="resMonitor"/>
<group name="resAdministrators">
<member name="resAdmin"/>
<member name="admin"/>
</group>
<group name="resDeployers">
<member name="resAdmin"/>
<member name="resDeploy"/>
<member name="admin"/>
</group>
<group name="resMonitors">
<member name="resAdmin"/>
<member name="resDeploy"/>
<member name="resMonitor"/>
<member name="admin"/>
</group>
</basicRegistry>
<!-- ODM Decision Center -->
<application id="decisioncenter" location="${server.config.dir}/apps/decisioncenter.war" name="decisioncenter" type="war">
<application-bnd>
<security-role name="rtsAdministrator">
<group name="rtsAdministrator"/>
</security-role>
<security-role name="rtsInstaller">
<group name="rtsInstaller"/>
</security-role>
<security-role name="rtsConfigManager">
<group name="rtsConfigManager"/>
</security-role>
<security-role name="rtsUser">
<group name="rtsUser"/>
</security-role>
</application-bnd>
</application>
<!-- ODM Enterprise Console (Teamserver) -->
<application id="teamserver" location="${server.config.dir}/apps/teamserver.war" name="teamserver" type="war">
<application-bnd>
<security-role name="rtsAdministrator">
<group name="rtsAdministrator"/>
</security-role>
<security-role name="rtsInstaller">
<group name="rtsInstaller"/>
</security-role>
<security-role name="rtsConfigManager">
<group name="rtsConfigManager"/>
</security-role>
<security-role name="rtsUser">
<group name="rtsUser"/>
</security-role>
</application-bnd>
</application>
<!-- ODM Rule Execution Server console -->
<application id="res" location="${server.config.dir}/apps/res.war" name="res" type="war">
<application-bnd>
<security-role name="resAdministrators">
<group name="resAdministrators"/>
</security-role>
<security-role name="resDeployers">
<group name="resDeployers"/>
</security-role>
<security-role name="resMonitors">
<group name="resMonitors"/>
</security-role>
</application-bnd>
</application>
<!-- ODM Scenario Service Provider (SSP) for DVS -->
<application id="testing" location="${server.config.dir}/apps/testing.war" name="testing" type="war">
<application-bnd>
<security-role name="resAdministrators">
<group name="resAdministrators"/>
</security-role>
<security-role name="resDeployers">
<group name="resDeployers"/>
</security-role>
</application-bnd>
</application>
<!-- ODM Decision Runner -->
<application id="DecisionRunner" location="${server.config.dir}/apps/DecisionRunner.war" name="DecisionRunner" type="war">
<application-bnd>
<security-role name="resAdministrators">
<group name="resAdministrators"/>
</security-role>
<security-role name="resDeployers">
<group name="resDeployers"/>
</security-role>
</application-bnd>
</application>
<!-- ODM Decision Service - Hosted Transparent Decision Service (HTDS) -->
<application id="DecisionService" location="${server.config.dir}/apps/DecisionService.war" name="DecisionService" type="war">
</application>
</server>
Hot deployment
Once you have an application in a compressed format, you may wish to expand it out. This will make it easier if you need to make updates to individual files in a development environment:
Unzip the Sample1.war application in the apps directory so that you have a directory called Sample1 that contains a directory called WEB-INF.
Remove the Sample1.war file and rename the Sample1 directory to Sample1.war (in that order).
You do not need to change the server.xml configuration file. The expanded file is treated the same as the compressed format.
https://developer.ibm.com/answers/questions/238432/how-does-deployment-in-liberty-work-in-detail.html - does not work!!!
<applicationManager autoExpandApps="true"/>