| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <!-- $Rev: 1377969 $ $Date: 2012-08-28 03:50:09 +0000 (Tue, 28 Aug 2012) $ --> |
| |
| <ServiceJar> |
| |
| <!-- |
| #===================================================================# |
| # D E F A U L T O P E N E J B S E R V I C E S # |
| #===================================================================# |
| # |
| # |
| # This file defines all the default configurations of containers, |
| # factories, managers and services that come with OpenEJB. |
| # |
| # Can contain numerous configurations of the standard services |
| # making it easy for users to simply name the one they want in |
| # their configuration files. |
| # |
| # Over time this will be become a library of default |
| # configurations |
| --> |
| |
| <!-- |
| # ========================================================== |
| # Default Container-Managed Persistence EntityBean Container |
| # ========================================================== |
| --> |
| <ServiceProvider id="Default CMP Container" |
| service="Container" |
| types="CMP_ENTITY" |
| constructor="id, transactionManager, securityService, CmpEngineFactory" |
| class-name="org.apache.openejb.core.cmp.CmpContainer"> |
| |
| CmpEngineFactory org.apache.openejb.core.cmp.jpa.JpaCmpEngineFactory |
| </ServiceProvider> |
| |
| <!-- |
| # ========================================================== |
| # Default Bean-Managed Persistence EntityBean Container |
| # ========================================================== |
| --> |
| <ServiceProvider |
| id="Default BMP Container" |
| service="Container" |
| types="BMP_ENTITY" |
| constructor="id, securityService, PoolSize" |
| class-name="org.apache.openejb.core.entity.EntityContainer"> |
| |
| # Specifies the size of the bean pools for this |
| # bmp entity container. |
| |
| PoolSize 10 |
| |
| </ServiceProvider> |
| |
| |
| |
| <!-- |
| # ========================================================== |
| # Default Stateless SessionBean Container |
| # ========================================================== |
| --> |
| <ServiceProvider |
| id="Default Stateless Container" |
| service="Container" |
| types="STATELESS" |
| factory-name="create" |
| class-name="org.apache.openejb.core.stateless.StatelessContainerFactory"> |
| |
| # Specifies the time an invokation should wait for an instance |
| # of the pool to become available. |
| # |
| # After the timeout is reached, if an instance in the pool cannot |
| # be obtained, the method invocation will fail. |
| # |
| # Usable time units: nanoseconds, microsecons, milliseconds, |
| # seconds, minutes, hours, days. Or any combination such as |
| # "1 hour and 27 minutes and 10 seconds" |
| # |
| # Any usage of the `javax.ejb.AccessTimeout` annotation will |
| # override this setting for the bean or method where the |
| # annotation is used. |
| |
| AccessTimeout = 30 seconds |
| |
| # Specifies the size of the bean pools for this stateless |
| # SessionBean container. If StrictPooling is not used, instances |
| # will still be created beyond this number if there is demand, but |
| # they will not be returned to the pool and instead will be |
| # immediately destroyed. |
| |
| MaxSize = 10 |
| |
| # Specifies the minimum number of bean instances that should be in |
| # the pool for each bean. Pools are prefilled to the minimum on |
| # startup. Note this will create start order dependencies between |
| # other beans that also eagerly start, such as other `@Stateless` |
| # beans with a minimum or `@Singleton` beans using `@Startup`. The |
| # @DependsOn annotation can be used to appropriately influence |
| # start order. |
| # |
| # The minimum pool size is rigidly maintained. Instances in the |
| # minimum side of the pool are not eligible for `IdleTimeout` or |
| # `GarbageCollection`, but are subject to `MaxAge` and flushing. |
| # |
| # If the pool is flushed it is immediately refilled to the minimum |
| # size with `MaxAgeOffset` applied. If an instance from the minimum |
| # side of the pool reaches its `MaxAge`, it is also immediately |
| # replaced. Replacement is done in a background queue using the |
| # number of threads specified by `CallbackThreads`. |
| |
| MinSize = 0 |
| |
| # StrictPooling tells the container what to do when the pool |
| # reaches it's maximum size and there are incoming requests that |
| # need instances. |
| # |
| # With strict pooling, requests will have to wait for instances to |
| # become available. The pool size will never grow beyond the the |
| # set `MaxSize` value. The maximum amount of time a request should |
| # wait is specified via the `AccessTimeout` setting. |
| # |
| # Without strict pooling, the container will create temporary |
| # instances to meet demand. The instances will last for just one |
| # method invocation and then are removed. |
| # |
| # Setting `StrictPooling` to `false` and `MaxSize` to `0` will result in |
| # no pooling. Instead instances will be created on demand and live |
| # for exactly one method call before being removed. |
| |
| StrictPooling = false |
| |
| # Specifies the maximum time that an instance should live before |
| # it should be retired and removed from use. This will happen |
| # gracefully. Useful for situations where bean instances are |
| # designed to hold potentially expensive resources such as memory |
| # or file handles and need to be periodically cleared out. |
| # |
| # Usable time units: nanoseconds, microsecons, milliseconds, |
| # seconds, minutes, hours, days. Or any combination such as |
| # `1 hour and 27 minutes and 10 seconds` |
| |
| MaxAge = 0 hours |
| |
| # When `ReplaceAged` is enabled, any instances in the pool that |
| # expire due to reaching their `MaxAge` will be replaced immediately |
| # so that the pool will remain at its current size. Replacement |
| # is done in a background queue so that incoming threads will not |
| # have to wait for instance creation. |
| # |
| # The aim of his option is to prevent user requests from paying |
| # the instance creation cost as `MaxAge` is enforced, potentially |
| # while under heavy load at peak hours. |
| # |
| # Instances from the minimum side of the pool are always replaced |
| # when they reach their `MaxAge`, this setting dictates the |
| # treatment of non-minimum instances. |
| |
| ReplaceAged = true |
| |
| # When `ReplaceFlushed` is enabled, any instances in the pool that |
| # are flushed will be replaced immediately so that the pool will |
| # remain at its current size. Replacement is done in a background |
| # queue so that incoming threads will not have to wait for |
| # instance creation. |
| # |
| # The aim of his option is to prevent user requests from paying |
| # the instance creation cost if a flush performed while under |
| # heavy load at peak hours. |
| # |
| # Instances from the minimum side of the pool are always replaced |
| # when they are flushed, this setting dictates the treatment of |
| # non-minimum instances. |
| # |
| # A bean may flush its pool by casting the `SessionContext` to |
| # `Flushable` and calling `flush()`. See `SweepInterval` for details on |
| # how flush is performed. |
| # |
| # import javax.annotation.Resource; |
| # import javax.ejb.SessionContext; |
| # import javax.ejb.Stateless; |
| # import java.io.Flushable; |
| # import java.io.IOException; |
| # |
| # @Stateless |
| # public class MyBean { |
| # |
| # @Resource |
| # private SessionContext sessionContext; |
| # |
| # public void flush() throws IOException { |
| # |
| # ((Flushable) sessionContext).flush(); |
| # } |
| # } |
| |
| ReplaceFlushed = false |
| |
| # Applies to MaxAge usage and would rarely be changed, but is a |
| # nice feature to understand. |
| # |
| # When the container first starts and the pool is filled to the |
| # minimum size, all those "minimum" instances will have the same |
| # creation time and therefore all expire at the same time dictated |
| # by the `MaxAge` setting. To protect against this sudden drop |
| # scenario and provide a more gradual expiration from the start |
| # the container will spread out the age of the instances that fill |
| # the pool to the minimum using an offset. |
| # |
| # The `MaxAgeOffset` is not the final value of the offset, but |
| # rather it is used in creating the offset and allows the |
| # spreading to push the initial ages into the future or into the |
| # past. The pool is filled at startup as follows: |
| # |
| # for (int i = 0; i < poolMin; i++) { |
| # long ageOffset = (maxAge / poolMin * i * maxAgeOffset) % maxAge; |
| # pool.add(new Bean(), ageOffset)); |
| # } |
| # |
| # The default `MaxAgeOffset` is -1 which causes the initial |
| # instances in the pool to live a bit longer before expiring. As |
| # a concrete example, let's say the MinSize is 4 and the MaxAge is |
| # 100 years. The generated offsets for the four instances created |
| # at startup would be 0, -25, -50, -75. So the first instance |
| # would be "born" at age 0, die at 100, living 100 years. The |
| # second instance would be born at -25, die at 100, living a total |
| # of 125 years. The third would live 150 years. The fourth 175 |
| # years. |
| # |
| # A `MaxAgeOffset` of 1 would cause instances to be "born" older |
| # and therefore die sooner. Using the same example `MinSize` of 4 |
| # and `MaxAge` of `100 years`, the life spans of these initial four |
| # instances would be 100, 75, 50, and 25 years respectively. |
| # |
| # A `MaxAgeOffset` of 0 will cause no "spreading" of the age of the |
| # first instances used to fill the pool to the minimum and these |
| # instances will of course reach their MaxAge at the same time. |
| # It is possible to set to decimal values such as -0.5, 0.5, -1.2, |
| # or 1.2. |
| |
| MaxAgeOffset = -1 |
| |
| # Specifies the maximum time that an instance should be allowed to |
| # sit idly in the pool without use before it should be retired and |
| # removed. |
| # |
| # Usable time units: nanoseconds, microsecons, milliseconds, |
| # seconds, minutes, hours, days. Or any combination such as |
| # "1 hour and 27 minutes and 10 seconds" |
| |
| IdleTimeout = 0 minutes |
| |
| # Allows Garbage Collection to be used as a mechanism for shrinking |
| # the pool. When set to true all instances in the pool, excluding |
| # the minimum, are eligible for garbage collection by the virtual |
| # machine as per the rules of `java.lang.ref.SoftReference` and can be |
| # claimed by the JVM to free memory. Instances garbage collected |
| # will have their `@PreDestroy` methods called during finalization. |
| # |
| # In the OpenJDK VM the `-XX:SoftRefLRUPolicyMSPerMB` flag can adjust |
| # how aggressively SoftReferences are collected. The default |
| # OpenJDK setting is 1000, resulting in inactive pooled instances |
| # living one second of lifetime per free megabyte in the heap, which |
| # is very aggressive. The setting should be increased to get the |
| # most out of the `GarbageCollection` feature of the pool. Much |
| # higher settings are safe. Even a setting as high as 3600000 (1 |
| # hour per free MB in the heap) does not affect the ability for the |
| # VM to garbage collect SoftReferences in the event that memory is |
| # needed to avoid an `OutOfMemoryException`. |
| |
| GarbageCollection = false |
| |
| # The frequency in which the container will sweep the pool and |
| # evict expired instances. Eviction is how the `IdleTimeout`, |
| # `MaxAge`, and pool "flush" functionality is enforced. Higher |
| # intervals are better. |
| # |
| # Instances in use are excluded from sweeping. Should an instance |
| # expire while in use it will be evicted immediately upon return |
| # to the pool. Effectively `MaxAge` and flushes will be enforced as |
| # a part of normal activity or sweeping, while IdleTimeout is only |
| # enforcable via sweeping. This makes aggressive sweeping less |
| # important for a pool under moderate load. |
| # |
| # Usable time units: nanoseconds, microsecons, milliseconds, |
| # seconds, minutes, hours, days. Or any combination such as |
| # `1 hour and 27 minutes and 10 seconds` |
| |
| SweepInterval = 5 minutes |
| |
| # When sweeping the pool for expired instances a thread pool is |
| # used to process calling `@PreDestroy` on expired instances as well |
| # as creating new instances as might be required to fill the pool |
| # to the minimum after a Flush or `MaxAge` expiration. The |
| # `CallbackThreads` setting dictates the size of the thread pool and |
| # is shared by all beans deployed in the container. |
| |
| CallbackThreads = 5 |
| |
| # PostConstruct methods are invoked on all instances in the pool |
| # when the bean is undeployed and its pool is closed. The |
| # `CloseTimeout` specifies the maximum time to wait for the pool to |
| # close and `PostConstruct` methods to be invoked. |
| # |
| # Usable time units: nanoseconds, microsecons, milliseconds, |
| # seconds, minutes, hours, days. Or any combination such as |
| # `1 hour and 27 minutes and 10 seconds` |
| |
| CloseTimeout = 5 minutes |
| |
| </ServiceProvider> |
| |
| |
| <!-- |
| # ========================================================== |
| # Default Singleton SessionBean Container |
| # ========================================================== |
| --> |
| <ServiceProvider |
| id="Default Singleton Container" |
| service="Container" |
| types="SINGLETON" |
| constructor="id, securityService" |
| class-name="org.apache.openejb.core.singleton.SingletonContainer"> |
| |
| # Specifies the maximum time an invocation could wait for the |
| # `@Singleton` bean instance to become available before giving up. |
| # |
| # After the timeout is reached a `javax.ejb.ConcurrentAccessTimeoutException` |
| # will be thrown. |
| # |
| # Usable time units: nanoseconds, microsecons, milliseconds, |
| # seconds, minutes, hours, days. Or any combination such as |
| # `1 hour and 27 minutes and 10 seconds` |
| # |
| # Any usage of the `javax.ejb.AccessTimeout` annotation will |
| # override this setting for the bean or method where the |
| # annotation is used. |
| |
| AccessTimeout = 30 seconds |
| |
| </ServiceProvider> |
| |
| |
| <!-- |
| # ========================================================== |
| # Default Stateful SessionBean Container |
| # ========================================================== |
| --> |
| <ServiceProvider |
| id="Default Stateful Container" |
| service="Container" |
| types="STATEFUL" |
| factory-name="create" |
| class-name="org.apache.openejb.core.stateful.StatefulContainerFactory"> |
| |
| # Specifies the maximum time an invocation could wait for the |
| # `@Stateful` bean instance to become available before giving up. |
| # |
| # After the timeout is reached a `javax.ejb.ConcurrentAccessTimeoutException` |
| # will be thrown. |
| # |
| # Usable time units: nanoseconds, microsecons, milliseconds, |
| # seconds, minutes, hours, days. Or any combination such as |
| # "1 hour and 27 minutes and 10 seconds" |
| # |
| # Any usage of the `javax.ejb.AccessTimeout` annotation will |
| # override this setting for the bean or method where the |
| # annotation is used. |
| |
| AccessTimeout = 30 seconds |
| |
| # The cache is responsible for managing stateful bean |
| # instances. The cache can page instances to disk as memory |
| # is filled and can destroy abandoned instances. A different |
| # cache implementation can be used by setting this property |
| # to the fully qualified class name of the Cache implementation. |
| |
| Cache org.apache.openejb.core.stateful.SimpleCache |
| |
| # The passivator is responsible for writing beans to disk |
| # at passivation time. Different passivators can be used |
| # by setting this property to the fully qualified class name |
| # of the `PassivationStrategy` implementation. The passivator |
| # is not responsible for invoking any callbacks or other |
| # processing, its only responsibly is to write the bean state |
| # to disk. |
| # |
| # Known implementations: |
| # |
| # - org.apache.openejb.core.stateful.RAFPassivater |
| # - org.apache.openejb.core.stateful.SimplePassivater |
| |
| Passivator org.apache.openejb.core.stateful.SimplePassivater |
| |
| # Specifies the time a bean can be idle before it is removed by the container. |
| # |
| # This value is measured in minutes. A value of 5 would |
| # result in a time-out of 5 minutes between invocations. |
| # A value of -1 would mean no timeout. |
| # A value of 0 would mean a bean can be immediately removed by the container. |
| # |
| # Any usage of the `javax.ejb.StatefulTimeout` annotation will |
| # override this setting for the bean where the annotation is used. |
| |
| TimeOut 20 |
| |
| # Specifies the frequency (in seconds) at which the bean cache is checked for |
| # idle beans. |
| |
| Frequency 60 |
| |
| # Specifies the size of the bean pools for this |
| # stateful SessionBean container. |
| |
| Capacity 1000 |
| |
| # Property name that specifies the number of instances |
| # to passivate at one time when doing bulk passivation. |
| |
| BulkPassivate 100 |
| |
| </ServiceProvider> |
| |
| <!-- |
| # ========================================================== |
| # Default Managed SessionBean Container |
| # ========================================================== |
| --> |
| <ServiceProvider |
| id="Default Managed Container" |
| service="Container" |
| types="MANAGED" |
| constructor="id, securityService" |
| class-name="org.apache.openejb.core.managed.ManagedContainer"> |
| |
| </ServiceProvider> |
| |
| <!-- |
| # ========================================================== |
| # Default Message Driven Container |
| # ========================================================== |
| --> |
| <ServiceProvider |
| id="Default MDB Container" |
| service="Container" |
| types="MESSAGE" |
| constructor="id, securityService, ResourceAdapter, MessageListenerInterface, ActivationSpecClass, InstanceLimit" |
| class-name="org.apache.openejb.core.mdb.MdbContainer"> |
| |
| # The resource adapter delivers messages to the container |
| |
| ResourceAdapter Default JMS Resource Adapter |
| |
| # Specifies the message listener interface handled by this container |
| |
| MessageListenerInterface javax.jms.MessageListener |
| |
| # Specifies the activation spec class |
| |
| ActivationSpecClass org.apache.activemq.ra.ActiveMQActivationSpec |
| |
| # Specifies the maximum number of bean instances that are |
| # allowed to exist for each MDB deployment. |
| |
| InstanceLimit 10 |
| |
| </ServiceProvider> |
| |
| <!-- |
| # ================================================ |
| # Default Proxy Factory implementation for JDK 1.3 |
| # ================================================ |
| --> |
| <ServiceProvider |
| id="Default JDK 1.3 ProxyFactory" |
| service="ProxyFactory" |
| types="ProxyFactory" |
| class-name="org.apache.openejb.util.proxy.Jdk13ProxyFactory"/> |
| |
| <!-- |
| # ================================================ |
| # Default Security Service implementation |
| # ================================================ |
| --> |
| <ServiceProvider |
| id="Default Security Service" |
| service="SecurityService" |
| types="SecurityService" |
| class-name="org.apache.openejb.core.security.SecurityServiceImpl"> |
| |
| DefaultUser guest |
| </ServiceProvider> |
| |
| <ServiceProvider |
| id="PseudoSecurityService" |
| service="SecurityService" |
| types="SecurityService" |
| class-name="org.apache.openejb.ri.sp.PseudoSecurityService"/> |
| |
| <!-- |
| # ================================================ |
| # Default Transaction Manager implementation |
| # ================================================ |
| --> |
| <ServiceProvider |
| id="Default Transaction Manager" |
| service="TransactionManager" |
| types="TransactionManager" |
| factory-name="create" |
| constructor="defaultTransactionTimeoutSeconds, defaultTransactionTimeout, TxRecovery, tmId, bufferClassName, bufferSizeKb, checksumEnabled, adler32Checksum, flushSleepTimeMilliseconds, flushSleepTime, logFileDir, logFileExt, logFileName, maxBlocksPerFile, maxBuffers, maxLogFiles, minBuffers, threadsWaitingForceThreshold" |
| class-name="org.apache.openejb.resource.GeronimoTransactionManagerFactory"> |
| defaultTransactionTimeout 10 minutes |
| |
| # When set to true, Howl logging is enabled |
| TxRecovery false |
| |
| # Requires TxRecovery |
| bufferSizeKb 32 |
| |
| # Requires TxRecovery |
| checksumEnabled true |
| |
| # Requires TxRecovery |
| adler32Checksum true |
| |
| # Requires TxRecovery |
| flushSleepTime 50 Milliseconds |
| |
| # Requires TxRecovery |
| logFileDir txlog |
| |
| # Requires TxRecovery |
| logFileExt log |
| |
| # Requires TxRecovery |
| logFileName howl |
| |
| # Requires TxRecovery |
| maxBlocksPerFile -1 |
| |
| # Requires TxRecovery |
| maxBuffers 0 |
| |
| # Requires TxRecovery |
| maxLogFiles 2 |
| |
| # Requires TxRecovery |
| minBuffers 4 |
| |
| # Requires TxRecovery |
| threadsWaitingForceThreshold -1 |
| </ServiceProvider> |
| |
| <!-- |
| # ================================================ |
| # Default JCA ManagedConnectionFactory for JDBC |
| # ================================================ |
| --> |
| <ServiceProvider |
| id="Default JDBC Database" |
| service="Resource" |
| types="javax.sql.DataSource, DataSource" |
| factory-name="create" |
| constructor="ServiceId, JtaManaged, JdbcDriver, Definition, MaxWaitTime, TimeBetweenEvictionRuns, MinEvictableIdleTime" |
| class-name="org.apache.openejb.resource.jdbc.DataSourceFactory"> |
| ServiceId |
| |
| Definition |
| |
| # Determines wether or not this data source should be JTA managed |
| # or user managed. If set to 'true' it will automatically be enrolled |
| # in any ongoing transactions. Calling begin/commit/rollback or setAutoCommit |
| # on the datasource or connection will not be allowed. If you need to perform |
| # these functions yourself, set `JtaManaged` to `false` |
| # |
| # In terms of JPA persistence.xml: |
| # |
| # - `JtaManaged=true` can be used as a 'jta-data-source' |
| # - `JtaManaged=false` can be used as a 'non-jta-data-source' |
| |
| JtaManaged = true |
| |
| # Driver class name |
| |
| JdbcDriver org.hsqldb.jdbcDriver |
| |
| # Url for creating connections |
| |
| JdbcUrl jdbc:hsqldb:mem:hsqldb |
| |
| # Default user name |
| |
| UserName sa |
| |
| # Default password |
| |
| Password |
| |
| PasswordCipher PlainText |
| |
| |
| # The connection properties that will be sent to the JDBC |
| # driver when establishing new connections |
| # |
| # Format of the string must be [propertyName=property;]* |
| # |
| # NOTE - The "user" and "password" properties will be passed |
| # explicitly, so they do not need to be included here. |
| |
| ConnectionProperties |
| |
| # The default auto-commit state of new connections |
| |
| DefaultAutoCommit true |
| |
| # The default read-only state of new connections |
| # If not set then the setReadOnly method will not be called. |
| # (Some drivers don't support read only mode, ex: Informix) |
| |
| DefaultReadOnly |
| |
| |
| # The default TransactionIsolation state of new connections |
| # If not set then the `setTransactionIsolation` method will not |
| # be called. The allowed values for this property are: |
| # |
| # - `NONE` |
| # - `READ_COMMITTED` |
| # - `READ_UNCOMMITTED` |
| # - `REPEATABLE_READ` |
| # - `SERIALIZABLE` |
| # |
| # Note: Most JDBC drivers do not support all isolation levels |
| |
| # DefaultTransactionIsolation |
| |
| |
| # The initial number of connections that are created when the |
| # pool is started |
| |
| InitialSize 0 |
| |
| # The maximum number of active connections that can be |
| # allocated from this pool at the same time, or a negative |
| # number for no limit. |
| |
| MaxActive 20 |
| |
| # The maximum number of connections that can remain idle in |
| # the pool, without extra ones being released, or a negative |
| # number for no limit. |
| |
| MaxIdle 20 |
| |
| # The minimum number of connections that can remain idle in |
| # the pool, without extra ones being created, or zero to |
| # create none. |
| |
| MinIdle 0 |
| |
| # The maximum number of milliseconds that the pool will wait |
| # (when there are no available connections) for a connection |
| # to be returned before throwing an exception, or -1 to wait |
| # indefinitely. |
| |
| MaxWaitTime -1 millisecond |
| |
| # The SQL query that will be used to validate connections from |
| # this pool before returning them to the caller. If specified, |
| # this query MUST be an SQL SELECT statement that returns at |
| # least one row. |
| |
| ValidationQuery |
| |
| # If true connections will be validated before being returned |
| # from the pool. If the validation fails, the connection is |
| # destroyed, and a new conection will be retrieved from the |
| # pool (and validated). |
| # |
| # NOTE - for a true value to have any effect, the |
| # ValidationQuery parameter must be set. |
| |
| TestOnBorrow true |
| |
| # If true connections will be validated before being returned |
| # to the pool. If the validation fails, the connection is |
| # destroyed instead of being returned to the pool. |
| # |
| # NOTE - for a true value to have any effect, the |
| # ValidationQuery parameter must be set. |
| |
| TestOnReturn false |
| |
| # If true connections will be validated by the idle connection |
| # evictor (if any). If the validation fails, the connection is |
| # destroyed and removed from the pool |
| # |
| # NOTE - for a true value to have any effect, the |
| # timeBetweenEvictionRunsMillis property must be a positive |
| # number and the ValidationQuery parameter must be set. |
| |
| TestWhileIdle false |
| |
| # The number of milliseconds to sleep between runs of the idle |
| # connection evictor thread. When set to a negative number, no |
| # idle connection evictor thread will be run. |
| |
| TimeBetweenEvictionRuns -1 millisecond |
| |
| # The number of connectionss to examine during each run of the |
| # idle connection evictor thread (if any). |
| |
| NumTestsPerEvictionRun 3 |
| |
| # The minimum amount of time a connection may sit idle in the |
| # pool before it is eligable for eviction by the idle |
| # connection evictor (if any). |
| |
| MinEvictableIdleTime 30 minutes |
| |
| # If true, a statement pool is created for each Connection and |
| # PreparedStatements created by one of the following methods are |
| # pooled: |
| # |
| # public PreparedStatement prepareStatement(String sql); |
| # public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) |
| |
| PoolPreparedStatements false |
| |
| # The maximum number of open statements that can be allocated |
| # from the statement pool at the same time, or zero for no |
| # limit. |
| # |
| # NOTE - Some drivers have limits on the number of open |
| # statements, so make sure there are some resources left |
| # for the other (non-prepared) statements. |
| |
| MaxOpenPreparedStatements 0 |
| |
| # If true the raw physical connection to the database can be |
| # accessed using the following construct: |
| # |
| # Connection conn = ds.getConnection(); |
| # Connection rawConn = ((DelegatingConnection) conn).getInnermostDelegate(); |
| # ... |
| # conn.close() |
| # |
| # Default is false, because misbehaving programs can do harmfull |
| # things to the raw connection shuch as closing the raw |
| # connection or continuing to use the raw connection after it |
| # has been assigned to another logical connection. Be careful |
| # and only use when you need direct access to driver specific |
| # extensions. |
| # |
| # NOTE: Do NOT close the underlying connection, only the |
| # original logical connection wrapper. |
| |
| AccessToUnderlyingConnectionAllowed false |
| |
| # use only all set values in this config |
| # will need a lot of properties but allow to not set some values |
| IgnoreDefaultValues = false |
| </ServiceProvider> |
| |
| <ServiceProvider |
| id="Default Unmanaged JDBC Database" |
| service="Resource" |
| types="javax.sql.DataSource, DataSource" |
| factory-name="create" |
| constructor="ServiceId, JtaManaged, JdbcDriver, Definition, MaxWaitTime, TimeBetweenEvictionRuns, MinEvictableIdleTime" |
| class-name="org.apache.openejb.resource.jdbc.DataSourceFactory"> |
| ServiceId |
| |
| Definition |
| |
| JtaManaged = false |
| |
| # Driver class name |
| |
| JdbcDriver org.hsqldb.jdbcDriver |
| |
| # Url for creating connections |
| |
| JdbcUrl jdbc:hsqldb:mem:hsqldb |
| |
| # Default user name |
| |
| UserName sa |
| |
| # Default password |
| |
| Password |
| |
| PasswordCipher PlainText |
| |
| # The connection properties that will be sent to the JDBC |
| # driver when establishing new connections |
| # |
| # Format of the string must be [propertyName=property;]* |
| # |
| # NOTE - The "user" and "password" properties will be passed |
| # explicitly, so they do not need to be included here. |
| |
| ConnectionProperties |
| |
| # The default auto-commit state of new connections |
| |
| DefaultAutoCommit true |
| |
| # The default read-only state of new connections |
| # If not set then the setReadOnly method will not be called. |
| # (Some drivers don't support read only mode, ex: Informix) |
| |
| DefaultReadOnly |
| |
| |
| # The default TransactionIsolation state of new connections |
| # If not set then the setTransactionIsolation method will not |
| # be called. The allowed values for this property are: |
| # NONE |
| # READ_COMMITTED |
| # READ_UNCOMMITTED |
| # REPEATABLE_READ |
| # SERIALIZABLE |
| # |
| # Note: Most JDBC drivers do not support all isolation levels |
| |
| # DefaultTransactionIsolation |
| |
| |
| # The initial number of connections that are created when the |
| # pool is started |
| |
| InitialSize 0 |
| |
| # The maximum number of active connections that can be |
| # allocated from this pool at the same time, or a negative |
| # number for no limit. |
| |
| MaxActive 10 |
| |
| # The maximum number of connections that can remain idle in |
| # the pool, without extra ones being released, or a negative |
| # number for no limit. |
| |
| MaxIdle 10 |
| |
| # The minimum number of connections that can remain idle in |
| # the pool, without extra ones being created, or zero to |
| # create none. |
| |
| MinIdle 0 |
| |
| # The maximum number of milliseconds that the pool will wait |
| # (when there are no available connections) for a connection |
| # to be returned before throwing an exception, or -1 to wait |
| # indefinitely. |
| |
| MaxWaitTime -1 millisecond |
| |
| # The SQL query that will be used to validate connections from |
| # this pool before returning them to the caller. If specified, |
| # this query MUST be an SQL SELECT statement that returns at |
| # least one row. |
| |
| ValidationQuery |
| |
| # If true connections will be validated before being returned |
| # from the pool. If the validation fails, the connection is |
| # destroyed, and a new conection will be retrieved from the |
| # pool (and validated). |
| # |
| # NOTE - for a true value to have any effect, the |
| # ValidationQuery parameter must be set. |
| |
| TestOnBorrow true |
| |
| # If true connections will be validated before being returned |
| # to the pool. If the validation fails, the connection is |
| # destroyed instead of being returned to the pool. |
| # |
| # NOTE - for a true value to have any effect, the |
| # ValidationQuery parameter must be set. |
| |
| TestOnReturn false |
| |
| # If true connections will be validated by the idle connection |
| # evictor (if any). If the validation fails, the connection is |
| # destroyed and removed from the pool |
| # |
| # NOTE - for a true value to have any effect, the |
| # timeBetweenEvictionRunsMillis property must be a positive |
| # number and the ValidationQuery parameter must be set. |
| |
| TestWhileIdle false |
| |
| # The number of milliseconds to sleep between runs of the idle |
| # connection evictor thread. When set to a negative number, no |
| # idle connection evictor thread will be run. |
| |
| TimeBetweenEvictionRuns -1 millisecond |
| |
| # The number of connectionss to examine during each run of the |
| # idle connection evictor thread (if any). |
| |
| NumTestsPerEvictionRun 3 |
| |
| # The minimum amount of time a connection may sit idle in the |
| # pool before it is eligable for eviction by the idle |
| # connection evictor (if any). |
| |
| MinEvictableIdleTime 30 minutes |
| |
| # If true, a statement pool is created for each Connection and |
| # PreparedStatements created by one of the following methods are |
| # pooled: |
| # public PreparedStatement prepareStatement(String sql); |
| # public PreparedStatement prepareStatement(String sql, |
| # int resultSetType, |
| # int resultSetConcurrency) |
| |
| PoolPreparedStatements false |
| |
| # The maximum number of open statements that can be allocated |
| # from the statement pool at the same time, or zero for no |
| # limit. |
| # |
| # NOTE - Some drivers have limits on the number of open |
| # statements, so make sure there are some resources left |
| # for the other (non-prepared) statements. |
| |
| MaxOpenPreparedStatements 0 |
| |
| # If true the raw physical connection to the database can be |
| # accessed using the following construct: |
| # Connection conn = ds.getConnection(); |
| # Connection rawConn = ((DelegatingConnection) conn).getInnermostDelegate(); |
| # ... |
| # conn.close() |
| # |
| # Default is false, because misbehaving programs can do harmfull |
| # things to the raw connection shuch as closing the raw |
| # connection or continuing to use the raw connection after it |
| # has been assigned to another logical connection. Be carefull |
| # and only use when you need direct access to driver specific |
| # extentions. |
| # |
| # NOTE: Do NOT close the underlying connection, only the |
| # original logical connection wrapper. |
| |
| AccessToUnderlyingConnectionAllowed false |
| </ServiceProvider> |
| |
| <!-- |
| # ================================================ |
| # Default JMS |
| # ================================================ |
| --> |
| <ServiceProvider |
| id="Default JMS Resource Adapter" |
| service="Resource" |
| types="ActiveMQResourceAdapter" |
| class-name="org.apache.openejb.resource.activemq.ActiveMQResourceAdapter"> |
| |
| # Broker configuration URI as defined by ActiveMQ |
| # see http://activemq.apache.org/broker-configuration-uri.html |
| # BrokerXmlConfig xbean:file:conf/activemq.xml - Requires xbean-spring.jar and dependencies |
| BrokerXmlConfig broker:(tcp://localhost:61616)?useJmx=false |
| |
| # Broker address |
| ServerUrl vm://localhost?waitForStart=20000&async=true |
| |
| # DataSource for persistence messages |
| DataSource Default Unmanaged JDBC Database |
| |
| # How long to wait for broker startup |
| StartupTimeout 10 seconds |
| |
| </ServiceProvider> |
| |
| <ServiceProvider |
| id="Default JMS Connection Factory" |
| service="Resource" |
| types="javax.jms.ConnectionFactory, javax.jms.QueueConnectionFactory, javax.jms.TopicConnectionFactory, QueueConnectionFactory, TopicConnectionFactory" |
| class-name="org.apache.activemq.ra.ActiveMQManagedConnectionFactory"> |
| |
| ResourceAdapter Default JMS Resource Adapter |
| |
| # Specifies if the connection is enrolled in global transaction |
| # allowed values: xa, local or none |
| TransactionSupport xa |
| |
| # Maximum number of physical connection to the ActiveMQ broker |
| PoolMaxSize 10 |
| |
| # Minimum number of physical connection to the ActiveMQ broker |
| PoolMinSize 0 |
| |
| # Maximum amount of time to wait for a connection |
| ConnectionMaxWaitTime 5 seconds |
| |
| # Maximum amount of time a connection can be idle before being reclaimed |
| ConnectionMaxIdleTime 15 Minutes |
| </ServiceProvider> |
| |
| <ServiceProvider |
| id="Default Queue" |
| service="Resource" |
| types="javax.jms.Queue, Queue" |
| constructor="destination" |
| class-name="org.apache.activemq.command.ActiveMQQueue"> |
| |
| # Specifies the name of the queue |
| |
| destination |
| </ServiceProvider> |
| |
| <ServiceProvider |
| id="Default Topic" |
| service="Resource" |
| types="javax.jms.Topic, Topic" |
| constructor="destination" |
| class-name="org.apache.activemq.command.ActiveMQTopic"> |
| |
| # Specifies the name of the topic |
| |
| destination |
| </ServiceProvider> |
| |
| <!-- |
| # ================================================ |
| # Default ORB |
| # ================================================ |
| --> |
| <ServiceProvider |
| id="Default ORB" |
| service="Resource" |
| types="org.omg.CORBA.ORB, ORB" |
| factory-name="create" |
| class-name="org.apache.openejb.core.OrbFactory"> |
| |
| </ServiceProvider> |
| |
| <!-- |
| # ================================================ |
| # Default JavaMail |
| # ================================================ |
| --> |
| <ServiceProvider |
| id="Default Mail Session" |
| service="Resource" |
| types="javax.mail.Session" |
| factory-name="create" |
| class-name="org.apache.openejb.core.MailSessionFactory"> |
| |
| </ServiceProvider> |
| |
| <!-- |
| # ================================================ |
| # Default JndiProvider |
| # ================================================ |
| --> |
| <ServiceProvider |
| id="Default Remote Jndi Provider" |
| service="JndiProvider" |
| types="javax.naming.InitialContext" |
| class-name="org.apache.openejb.core.NoProvider"> |
| # This provider allows the configuration of InitialContext |
| # objects for the lookup of resources outside this server |
| # |
| # The properties specified here go directly to the properties |
| # object passed into the constructor of the InitialContext |
| # |
| # Example properties might look like the following: |
| # |
| # java.naming.factory.initial = org.apache.openejb.client.RemoteInitialContextFactory |
| # java.naming.provider.url = ejbd://localhost:4201 |
| # |
| </ServiceProvider> |
| |
| <!-- |
| # dynamic routing datasource |
| --> |
| <ServiceProvider |
| id="RoutedDataSource" |
| service="Resource" types="DataSource" |
| class-name="org.apache.openejb.resource.jdbc.RoutedDataSource"> |
| Router |
| </ServiceProvider> |
| |
| |
| </ServiceJar> |