web server - Borland Technical Publications
web server - Borland Technical Publications web server - Borland Technical Publications
OpenJMS Table 24.1 openjms.datasource openjms.sql_file Partition level porperties for OpenJMS (continued) Property Name Description Default Value openjms.datasource_lookup_interval openjms.max_datasource_lookup_retries openjms.recreate_database_on_startup This property specifies the JNDI name of the datasource that is used to persist messages in OpenJMS. If this datasource is the same as the one that your application uses, then the JDBC connection pool will be shared among them and a single JDBC connection will be used both to persist messages and provide data access to your application, thereby avoiding a need for 2PC. If the specified datasource is not available in the JNDI namespace at the startup time, the startup code will use the properties openjms.datasource_lookup_interval, and openjms.max_datasource_lookup_retrie s described below, to make multiple attempts to access the target datasource. Despite that, if the lookup fails, the initialization code will internally construct a datasource from the information specified in the configuration (openjms.xml) file. Note The startup code will use the information from openjms.xml file only if the user specified datasource is not available. If the datasource is pre-deployed or available in JNDI, RDBMS configuration in the openjms.xml file will be ignored. This property is used to specify the file that contains the SQL statements to drop, and create database tables. These tables are used by OpenJMS for message persistence. This property specifies the duration between successive datasource lookup attempts. See the property openjms.datasource property above. This property specifies the number of attempts to lookup for the datasource before attempting to use the default datasource.See the property openjms.datasource property above. This property when set will cause re-creation of database across each startup of the service. This is useful for cases where previous messages are not needed in the subsequent runs (for example, while testing). serial:// datasources/ JDSLocal adm/openjms/ conf/ openjms.sql 1 second 5 seconds false Chapter 24: JMS provider pluggability 235
OpenJMS Table 24.1 Property Name Description Default Value openjms.database.softcommit This property is only applicable when JDataStore is used to persist JMS messages. This property provides improved performance during commit process, but with lack of recoverability in some rare failure scenarios. See JDataStore documentation for more details. true openjms.database Partition level porperties for OpenJMS (continued) openjms.use_bes_transactions OpenJMS Topologies This property only applies to JDS and is used to specify the name of the JDS database. OpenJMS starts a transaction before it dispatches messages. It uses the transaction service that is part of the partition which contains OpenJMS. If no transaction service is available in the partition, one from the Smart Agent domain is selected. Use this property when you use OpenJMS during transactions. This property does not affect the messaging applications that don’t involve transactions. However, to avoid an extra cost of transaction startup and propagation turn this property off. openjms.jds true Important Note If you have two OpenJMS services with both of them using the TCP connector, make sure you have different port numbers specified for them in the openjms.xml file. To open this file, right-click on the OpenJMS service in the Borland Management Console and select Properties from the drop down menu. Click on the openjms.xml tab in the right pane. OpenJMS can be configured to run in the following two topologies: ■ Server shared mode - where the OpenJMS service is hosted in a dedicated partition with other services in that partition disabled. It is available as a shared service to all partitions that are in the same osagent domain as the configuration in which OpenJMS partition resides. The remote clients can access OpenJMS via an RMI or TCP connector. Since OpenJMS needs a naming service to bind the JNDI objects that are specified in its configuration file, the Transaction and Naming services must be enabled in the partition that hosts OpenJMS or they should be available in the SmartAgent domain. ■ Embedded Service mode - where OpenJMS is run as an embedded service in each of the partitions in the configuration. Each partition uses the embedded (intravirtual machine) connector of OpenJMS instead of the TCP or RMI connector. The JMS clients use the embedded queue/topic connection factories. These factories provide optimal ways to avoid the cost of TCP/IP. Even though JMS clients can use the RMI connector in this mode, to achieve maximum performance it must use the local (embedded) connector. If multiple OpenJMS service instances are running in a single SmartAgent domain of BES, there will be no database sharability or automatic failover to a running instance. This is because there is no support for clustering for OpenJMS. 236 BES Developer’s Guide
- Page 195 and 196: Client View of an MDB Client View o
- Page 197 and 198: Clustering of MDBs This is yet anot
- Page 199 and 200: Error Recovery Redelivered messages
- Page 201 and 202: 190 BES Developer’s Guide
- Page 203 and 204: JNDI Definitions Module Important s
- Page 205 and 206: Disabling and Enabling a Deployed D
- Page 207 and 208: Configuring JDBC Datasources In the
- Page 209 and 210: Configuring JDBC Datasources To add
- Page 211 and 212: Defining the Connection Pool Proper
- Page 213 and 214: Defining the Connection Pool Proper
- Page 215 and 216: Descriptions of Borland Enterprise
- Page 217 and 218: Advanced Topics for Defining JDBC D
- Page 219 and 220: Connecting to JDBC Resources from J
- Page 221 and 222: Configuring JMS Connection Factorie
- Page 223 and 224: Defining Connection Pool Properties
- Page 225 and 226: Obtaining JMS Connection Factories
- Page 227 and 228: JMS and Transactions and its accomp
- Page 229 and 230: JMS and Transactions For instance:
- Page 231 and 232: 220 BES Developer’s Guide
- Page 233 and 234: Configuring JMS administered object
- Page 235 and 236: Tibco Creating Clustered JMS Servic
- Page 237 and 238: Sonic serverUrl String localhost:72
- Page 239 and 240: Sonic Creating Clustered JMS Servic
- Page 241 and 242: OpenJMS Even though OpenJMS can be
- Page 243 and 244: OpenJMS Important If you use OpenJM
- Page 245: OpenJMS openjms.clean_messages_on_s
- Page 249 and 250: Other JMS providers The following a
- Page 251 and 252: 240 BES Developer’s Guide
- Page 253 and 254: Creating the Interceptor Class For
- Page 255 and 256: Creating the JAR file Creating the
- Page 257 and 258: Components Components The Connector
- Page 259 and 260: System Contracts Connection Managem
- Page 261 and 262: System Contracts Security Managemen
- Page 263 and 264: Common Client Interface (CCI) Conne
- Page 265 and 266: Packaging and Deployment Figure 26.
- Page 267 and 268: Resource Adapters Resource Adapters
- Page 269 and 270: Connection management Connection ma
- Page 271 and 272: Security management with the Securi
- Page 273 and 274: Security management with the Securi
- Page 275 and 276: Resource Adapter overview Note Reso
- Page 277 and 278: Deployment Descriptors for the Reso
- Page 279 and 280: Developing the Resource Adapter Con
- Page 281 and 282: Deploying the Resource Adapter Pack
- Page 283 and 284: Application development overview 8
- Page 285 and 286: Application development overview //
- Page 287 and 288: Application development overview
- Page 289 and 290: Other Considerations Other Consider
- Page 291 and 292: Other Considerations To illustrate,
- Page 293 and 294: Other Considerations } } { cf = new
- Page 295 and 296: General syntax and usage General sy
OpenJMS<br />
Table 24.1<br />
Property Name Description Default Value<br />
openjms.database.softcommit<br />
This property is only applicable<br />
when JDataStore is used to persist<br />
JMS messages. This property<br />
provides improved performance<br />
during commit process, but with lack<br />
of recoverability in some rare failure<br />
scenarios. See JDataStore<br />
documentation for more details.<br />
true<br />
openjms.database<br />
Partition level porperties for OpenJMS (continued)<br />
openjms.use_bes_transactions<br />
OpenJMS Topologies<br />
This property only applies to JDS<br />
and is used to specify the name of<br />
the JDS database.<br />
OpenJMS starts a transaction<br />
before it dispatches messages. It<br />
uses the transaction service that is<br />
part of the partition which contains<br />
OpenJMS. If no transaction service<br />
is available in the partition, one from<br />
the Smart Agent domain is selected.<br />
Use this property when you use<br />
OpenJMS during transactions. This<br />
property does not affect the<br />
messaging applications that don’t<br />
involve transactions. However, to<br />
avoid an extra cost of transaction<br />
startup and propagation turn this<br />
property off.<br />
openjms.jds<br />
true<br />
Important<br />
Note<br />
If you have two OpenJMS services with both of them using the TCP connector, make<br />
sure you have different port numbers specified for them in the openjms.xml file. To open<br />
this file, right-click on the OpenJMS service in the <strong>Borland</strong> Management Console and<br />
select Properties from the drop down menu. Click on the openjms.xml tab in the right<br />
pane.<br />
OpenJMS can be configured to run in the following two topologies:<br />
■<br />
Server shared mode - where the OpenJMS service is hosted in a dedicated<br />
partition with other services in that partition disabled. It is available as a shared<br />
service to all partitions that are in the same osagent domain as the configuration in<br />
which OpenJMS partition resides. The remote clients can access OpenJMS via an<br />
RMI or TCP connector. Since OpenJMS needs a naming service to bind the JNDI<br />
objects that are specified in its configuration file, the Transaction and Naming<br />
services must be enabled in the partition that hosts OpenJMS or they should be<br />
available in the SmartAgent domain.<br />
■<br />
Embedded Service mode - where OpenJMS is run as an embedded service in<br />
each of the partitions in the configuration. Each partition uses the embedded (intravirtual<br />
machine) connector of OpenJMS instead of the TCP or RMI connector. The<br />
JMS clients use the embedded queue/topic connection factories. These factories<br />
provide optimal ways to avoid the cost of TCP/IP. Even though JMS clients can use<br />
the RMI connector in this mode, to achieve maximum performance it must use the<br />
local (embedded) connector.<br />
If multiple OpenJMS service instances are running in a single SmartAgent domain of<br />
BES, there will be no database sharability or automatic failover to a running instance.<br />
This is because there is no support for clustering for OpenJMS.<br />
236 BES Developer’s Guide