임베디드 가능한 EJB 컨테이너 구성 특성

임베디드 가능한 EJB(Enterprise JavaBeans) 컨테이너에 대해 다음 구성 특성을 사용합니다.

표 1. 임베디드 가능한 EJB 컨테이너 구성 특성. 임베디드 가능한 EJB 컨테이너 구성 특성을 사용합니다.
특성 유형 기본값 설명
com.ibm.websphere.ejbcontainer.cacheSize java.lang.Long 2 053 EJB 캐시에 대한 버킷의 수.
com.ibm.websphere.ejbcontainer.cacheSweepInterval java.lang.Long 3 000 항목을 제거할지 결정하기 위한 EJB 캐시의 스윕 사이의 시간.
com.ibm.websphere.ejbcontainer.inactivePoolCleanupInterval java.lang.Long 30 000 비활성 풀 정리 전에 정리 스레드가 대기하는 시간(밀리초).
com.ibm.websphere.ejbcontainer.passivationDir java.lang.String <TempDir> 비활성 stateful Beans에 대한 디렉토리입니다. 사용자는 지정된 디렉토리에 대한 읽기 및 쓰기 액세스 권한이 있어야 합니다.
com.ibm.websphere.embeddable.configFileName java.lang.String <CurrentWorkingDirectory> /embeddable.properties 임베디드 가능한 EJB 컨테이너 특성을 포함한 특성 파일의 파일 이름입니다. 파일이 처리되면, 프로그래밍 방식으로 전달된 것처럼 각 특성이 새로 작성된 EJB 컨테이너로 전달됩니다. 구성 파일의 특성은 프로그래밍 방식으로 전달된 특성으로 대체됩니다.
주의: 명령행의 시스템 특성으로 이 특성을 지정할 수도 있습니다.

다음 테이블은 데이터 소스에 대해 구성 특성을 포함합니다. 각 특성은 설정이 다른 다중 데이터 소스를 구성할 수 있는 개별 데이터 소스에 따라 다릅니다. <data_source_id>를 구성될 데이터 소스를 식별하는 고유한 항목으로 대체하십시오. 일부 특성은 각 데이터 소스에 대해 필요한 대로 나열됩니다.

표 2. JDBC(Java Database Connectivity) 데이터 소스에 대한 임베디드 가능한 EJB 컨테이너 구성 특성. JDBC 데이터 소스에 대한 임베디드 가능한 EJB 컨테이너 구성 특성을 사용합니다.
특성 유형 설명
DataSource.<data_source_id>.name java.lang.String 필수. 컨테이너가 임베디드 가능한 컨테이너의 글로벌 네임스페이스에서 이 데이터 소스를 바인드하는 데 사용하는 JNDI(Java™ Naming and Directory Interface) 문자열입니다. 이 문자열은 애플리케이션에서 사용된 JNDI 검색과 일치해야 합니다.
DataSource<data_source_id>.className java.lang.String 필수. 데이터 소스 클래스의 Java 클래스 이름입니다. 테스트를 위해, app_server_root/derby/lib/derby.jar이 JVM(Java Virtual Machine) 클래스 경로에 있는 경우 Apache Derby가 사용될 수 있습니다. 지원되는 Apache Derby용 데이터 소스 클래스는 org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource 및 org.apache.derby.jdbc.EmbeddedXADataSource입니다.
DataSource.<data_source_id>.connectionSharing java.lang.String 연결을 공유하기 위한 정책입니다. 올바른 값은 MatchOriginalRequest(기본값), MatchCurrentState 또는 None입니다. MatchOriginalRequest는 기존 연결의 원래 요청된 설정과 일치하는 경우 연결 요청이 공유할 수 있음을 의미합니다. MatchCurrentState는 기존 연결의 현재 설정과 일치하는 경우 연결 요청이 공유할 수 있음을 의미합니다. 없음은 다중 연결 요청이 동일한 연결을 공유하지 않음을 의미합니다.
DataSource.<data_source_id>.databaseName java.lang.String 이 데이터 소스가 연결할 데이터베이스의 이름입니다.
DataSource.<data_source_id>.isolationLevel java.lang.Integer 이 데이터 소스에서의 연결을 위한 트랜잭션 격리 레벨입니다. 지정되지 않은 경우, 기본값은 JDBC 드라이버나 데이터베이스에서 제공됩니다.

유효한 값은 커미트되지 않은 읽기의 경우 1, 커미트된 읽기의 경우 2, 반복 읽기의 경우 4 또는 순차적 실행의 경우 8입니다. 이 값은 java.sql.Connection의 상수에서 오며 변경될 수 있습니다.

DataSource.<data_source_id>.maxIdleTime java.lang.Integer 이 시간(초)이 지나면 연결 풀이 사용되지 않은 연결을 닫을 수 있습니다.
DataSource.<data_source_id>.maxPoolSize java.lang.Integer 이 데이터 소스에 대해 작성된 최대 연결 수입니다. 이 수의 동시 연결이 사용 중이면 하나 이상의 사용 중인 연결이 풀로 리턴될 때까지 이 데이터 소스에서 연결을 가져오는 차후 요청이 차단됩니다.
DataSource.<data_source_id>.maxStatements java.lang.Integer 연결 풀에서 캐시된 명령문의 최대값입니다. 이 값은 maxPoolSize 값으로 나누어 풀의 각 연결에 대해 캐시될 수 있는 명령문의 수를 판별합니다. 0의 값은 명령문 캐싱을 사용 안함으로 설정합니다.
DataSource.<data_source_id>.minPoolSize java.lang.Integer 이 데이터 소스에 대한 연결 풀에서 유지할 최대 연결 수입니다. 사용 중인 연결이 없는 경우, 풀 크기가 이 설정에 도달할 때까지 연결 풀은 연결을 버릴 수 있습니다. 이 설정은 음수가 아니어야 합니다.
DataSource.<data_source_id>.password java.lang.String 데이터베이스 액세스 시 지정된 user의 비밀번호입니다. 이전 특성과 같이, 연결 작성 시 데이터베이스가 보안을 사용하지 않거나 또는 사용자 이름과 비밀번호가 프로그래밍 방식으로 제공된 경우 이 특성을 생략할 수 있습니다.
DataSource.<data_source_id>.transactional java.lang.Boolean 이 데이터 소스가 JTA(Java Transaction API) 트랜잭션에 포함되어야 하는지 여부입니다. 유효한 값은 true(기본값) 또는 false입니다.
DataSource.<data_source_id>.user java.lang.String 데이터베이스 액세스를 위한 사용자 이름입니다. 연결 작성 시 데이터베이스가 보안을 사용하지 않거나 또는 사용자 이름과 비밀번호가 프로그래밍 방식으로 제공된 경우 이 특성을 생략할 수 있습니다.
DataSource.<data_source_id>.<vendor_property_name _or_connection_pool_property_name> java.lang.String 다른 특성을 다음과 같이 구성할 수도 있습니다.
  • serverNameportNumber와 같은 공급업체 특정 데이터 소스 특성
  • userDefinedErrorMapvalidateNewConnection과 같은 WebSphere® Application Server 데이터 소스 특성
  • connectionTimeoutpurgePolicy와 같은 WebSphere Application Server 연결 풀링 특성
DataSource.<data_source_id>.xaRecoveryPassword java.lang.String XA 데이터 소스에만 적용됩니다. XA 복구를 위한 비밀번호입니다.
DataSource.<data_source_id>.xaRecoveryUser java.lang.String XA 데이터 소스에만 적용됩니다. 일부 데이터베이스는 XA 복구를 위해 특수 권한이 있는 사용자가 필요합니다. 이 특성을 사용하여 기본 사용자 대신 XA 복구를 위한 사용자 이름을 지정합니다.

다음 특성을 사용하여 두 데이터 소스를 구성합니다.

DataSource.ds1.name=env/jdbc/ds1
DataSource.ds1.className=org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource
DataSource.ds1.transactional=true
DataSource.ds1.createDatabase=create
DataSource.ds1.databaseName=jtest1
DataSource.ds1.user=dbuser1
DataSource.ds1.password=dbpwd1
DataSource.ds1.maxPoolSize=5

DataSource.ds2.name=env/jdbc/ds2
DataSource.ds2.className=org.apache.derby.jdbc.EmbeddedXADataSource
DataSource.ds2.connectionSharing=MatchOriginalRequest
DataSource.ds2.createDatabase=create
DataSource.ds2.databaseName=jtest2
DataSource.ds2.user=dbuser2
DataSource.ds2.password=dbpwd2
DataSource.ds2.maxPoolSize=10
DataSource.ds2.minPoolSize=1

DataSource.ds3.name=env/jdbc/ds3
DataSource.ds3.className=com.ibm.db2.jcc.DB2XADataSource
DataSource.ds3.driverType=4
DataSource.ds3.databaseName=DB2COPY1
DataSource.ds3.serverName=mydb2.test.ibm.com
DataSource.ds3.portName=50000
DataSource.ds3.user=dbuser1
DataSource.ds3.password=dbpwd1

첫 번째 데이터 소스, ds1은 이름, env/jdbc/ds1의 네임스페이스에서 바인드되며 5개까지의 Apache Derby 데이터베이스에 대한 연결을 위한 연결 풀링을 제공합니다. 두 번째 데이터 소스, ds2는 env/jdbc/ds2의 네임스페이스에서 바인드되며 Apache Derby 데이터베이스에 대한 XA-준수 연결 풀링을 제공합니다.

다음 테이블은 EJB 바인딩을 위한 구성 특성을 포함합니다. 각 특성의 경우 다음을 대체합니다.
  • <app>을 애플리케이션 이름으로 대체하십시오.

    기본적으로 애플리케이션 이름은 비어 있는 문자열입니다. 그러나 createEJBContainer 호출 시 애플리케이션 이름은 EJBContainer.APP_NAME 특성을 사용하여 지정될 수 있습니다.

  • <module>을 모듈 이름으로 대체하십시오.

    모듈 이름은 ejb-jar.xml에서 <module-name>으로 지정되며, ".jar" 접미부가 없는 JAR 파일의 이름이거나, 또는 모듈을 포함한 디렉토리의 이름입니다.

  • <ejb>를 EJB의 이름으로 대체하십시오.

    EJB의 이름은 ejb-jar.xml에서 <ejb-name>으로 지정되거나 어노테이션 사용 시 이름 요소(예: @Stateless(name="TestBean"))로 지정됩니다. EJB 어노테이션에서 지정된 이름이 없는 경우, 단순 클래스 이름이 사용됩니다. 예를 들어, 클래스 com.ibm.test.TestBean에 대해 TestBean입니다.

  • <interceptor>를 인터셉터 클래스의 이름으로 대체하십시오.
  • <ref>를 자원 참조, EJB 참조 또는 환경 항목의 이름으로 대체하십시오.

    참조는 ejb-jar.xml에서 예를 들어 <res-ref-name>jdbc/mydsref</res-ref-name> 또는 <ejb-ref-name>java:module/env/myejbref</ejb-ref-name>로 지정될 수 있습니다. 또는, 어노테이션을 사용하여 참조를 지정할 수 있습니다(예: @Resource(name="jdbc/mydsref") 또는 @EJB(name="java:module/env/myenvref")).

임베드 가능 컨테이너를 실행할 때 애플리케이션 이름이 지정되지 않는 경우 <app> 을 생략해야 합니다. 그러나 # 구분 기호를 사용해야 합니다. 예: Bean.#<module>#<bean>.ResourceRef.BindingName.

표 3. 참조 바인딩에 임베디드 가능한 EJB 컨테이너 구성 특성. 참조 바인딩에 임베디드 가능한 EJB 컨테이너 구성 특성을 사용합니다.
특성 유형 설명
Bean.<app>#<module>#<ejb>.ResourceRef.BindingName.<ref> 또는 Interceptor.<app>#<module>#<interceptor>.ResourceRef.BindingName.<ref> java.lang.String 자원 참조가 검색되거나 삽입되면 사용할 JNDI 문자열입니다. 구성된 데이터 소스의 JNDI 이름이어야 합니다.
Bean.<app>#<module>#<ejb>.EJBRef.BindingName.<ref-name> 또는 Interceptor.<app>#<module>#<interceptor>.EJBRef.BindingName.<ref> java.lang.String EJB 참조가 검색되거나 삽입되면 사용할 JNDI 문자열입니다. 임베디드 가능한 EJB 컨테이너에서 EJB의 java:global, java:app 또는 java:module JNDI 문자열이어야 합니다.
Bean.<app>#<module>#<ejb>.EnvEntry.Value.<ref-name> 또는 Interceptor.<app>#<module>#<interceptor>.EnvEntry.Value.<ref> java.lang.String 환경 항목이 검색되거나 삽입되면 사용할 값입니다. 이 특성은 env-entry-value로 지정된 값을 대체합니다. 환경 항목의 유형으로 이 값이 유효해야 합니다.
Bean.<app>#<module>#<ejb>.EnvEntry.BindingName.<ref> 또는 Interceptor.<app>#<module>#<interceptor>.EnvEntry.BindingName.<ref> java.lang.String 환경 항목이 검색되거나 삽입되면 사용할 JNDI 문자열입니다. 동일한 임베디드 가능한 EJB 컨테이너에서 다른 환경의 java:global, java:app 또는 java:module JNDI 문자열이어야 합니다.
Bean.<app>#<module>#<ejb>.DataSource.BindingName.<ref> 또는 Interceptor.<app>#<module>#<interceptor>.DataSource.BindingName.<ref> java.lang.String 데이터 소스가 검색되거나 삽입되면 사용할 JNDI 문자열입니다. 구성된 데이터 소스의 JNDI 이름 또는 동일한 임베디드 가능한 EJB 컨테이너에서 다른 데이터 소스의 java:global, java:app 또는 java:module JNDI 문자열이어야 합니다. 애플리케이션 개발자는 데이터 소스를 직접 검색하지 않고 자원 참조를 사용해야 합니다. 데이터 소스를 직접 검색하도록 애플리케이션이 코딩되면 이 특성을 사용하여 애플리케이션에 포함된 데이터 소스를 대체할 수 있습니다. 데이터 소스 정의에 대한 자세한 정보는 Information Center를 참조하십시오.

다음 특성을 사용하여 두 참조가 있는 EJB 및 환경 항목이 있는 인터셉터에 대한 바인딩을 구성합니다.

Bean.#TestModule#TestBean.ResourceRef.BindingName.jdbc/dsref=env/jdbc/ds1
Bean.#TestModule#TestBean.EJBRef.BindingName.ejb/Cart=java:global/CartModule/CartBean
Interceptor.#TestModule#com.ibm.example.LoggerInterceptor.EnvEntry.Value.logFile=/tmp/output.log
문제점 방지 문제점 방지: 다음 특성을 사용하여 TestModule이라는 EJB 모듈에서 TestBean이라는 EJB에 정의된 java:module/env/TestDataSource를 임베디드 가능한 특성에 정의된 jdbc/MyDataSource로 대체합니다.
Bean.#TestModule#TestBean.DataSource.BindingName.java\:module/env/TestDataSource=jdbc/MyDataSource
gotcha
표 4. 보안을 위한 임베디드 가능한 EJB 컨테이너 구성 특성. 보안을 위해 임베디드 가능한 EJB 컨테이너 구성 특성을 사용합니다.
특성 유형 기본값 설명
com.ibm.websphere.securityEnabled java.lang.String false 보안 역할이 확인되는지 여부를 판별합니다. 유효한 값은 false(기본값) 또는 true입니다. true인 경우, 보안 역할이 확인되며 false인 경우 보안 역할이 확인되지 않습니다.
role.<role_name> java.lang.String   EJB 역할을 하나 이상의 사용자에게 맵핑합니다. <role_name>은 어노테이션 @RolesAllowed 또는 배치 디스크립터 <method-permission>을 통해 메소드에 지정되는 역할입니다. 값은 쉼표로 구분되는 사용자 이름의 문자열입니다(예: "bob, mary, john"). 목록의 사용자는 <role_name>을 필요로 하는 메소드를 실행할 수 있습니다.
role.runAs.<role_name> java.lang.String   EJB 역할 하나를 사용자 한 명에게 맵핑합니다. <role_name>은 어노테이션 @RunAs 또는 배치 디스크립터 <run-as>를 통해 Bean 또는 메소드에 지정되는 역할입니다. 값은 단일 사용자 이름입니다. 실행 중인 동안 Bean에서 필요한 권한 부여에 사용자 이름이 사용됩니다.
user.invocation java.lang.String   Bean이 호출되면 권한 부여에 사용될 수 있는 사용자를 정의합니다. 값은 단일 사용자 이름입니다. 컨테이너는 이 사용자가 실행된 메소드를 실행할 수 있는 역할에 맵핑되는지 확인합니다.

다음 테이블은 LTC(Local Transaction Containment) 동작을 위한 구성 특성을 포함합니다. LTC의 설명은 로컬 트랜잭션 제약에 대해 읽으십시오. 각 특성은 Bean에 따라 다릅니다.

임베드 가능 컨테이너를 실행할 때 애플리케이션 이름이 지정되지 않는 경우 <application_name> 을 생략해야 합니다. 그러나 # 구분 기호를 사용해야 합니다. 예: Bean.#<module_name>#<bean_name>LocalTransaction.Resolver.

표 5. 로컬 트랜잭션 제약을 위한 임베디드 가능한 EJB 컨테이너 구성 특성. 로컬 트랜잭션 제약을 위해 임베디드 가능한 EJB 컨테이너 구성 특성을 사용합니다.
특성 유형 기본값 설명
Bean.<application_name>#<module_name>#<bean_name>.LocalTransaction.Resolver java.lang.String 애플리케이션 로컬 트랜잭션 해결을 담당하는 엔티티를 판별합니다. 유효한 값은 Application(기본값) 또는 ContainerAtBoundary입니다.
Bean.<application_name>#<module_name>#<bean_name>.LocalTransaction.UnresolvedAction java.lang.String 롤백 해결되지 않은 로컬 트랜잭션에 대한 수행 조치를 판별합니다. 유효한 값은 Rollback(기본값) 또는 Commit입니다.

다음 테이블은 XML 동작에 대한 구성 특성을 포함합니다.

표 6. XA에 대해 임베디드 가능한 EJB 구성 특성. XA에 대해 임베디드 가능한 EJB 구성 특성을 사용합니다.
특성 유형 기본값 설명
com.ibm.websphere.tx.acceptHeuristicHazard java.lang.String false 마지막 참가자 지원이 모든 모듈에 대해 사용 가능한지를 지정합니다. 기본값은 false입니다.
com.ibm.websphere.tx.auditRecovery java.lang.String true 복구 처리가 감사 메시지를 출력하는지 여부를 지정하며, 복구 중 XA 자원과 XID 처리를 표시합니다. 지정된 감사 복구가 없는 경우, 오류가 발생하지 않으면 단일 복구 메시지만이 복구된 트랜잭션의 수와 함께 출력됩니다.
com.ibm.websphere.tx.clientInactivityTimeout java.lang.String 0 트랜잭션 요청 사이의 최대 기간(초)을 지정합니다. 이 제한시간 값을 초과하는 클라이언트 비활성 기간으로 트랜잭션이 롤백됩니다. 기본 설정, 0은 한계가 존재하지 않음을 의미합니다.
com.ibm.websphere.tx.enableLoggingForHeuristicReporting java.lang.String false 이 특성을 사용하여 경험적 보고에 대한 로깅을 사용 가능하게 할 수 있습니다. 마지막 참가자 지원이 사용되면, 서버가 사용 불가능하게 될 때 발생할 수 있는 경험적 결과의 보고서에서는 추가 정보를 트랜잭션 로그에 작성해야 합니다. 사용 가능으로 설정된 경우, 1단계 및 2단계 커미트 자원 모두에 관련된 모든 트랜잭션에 대해 추가 로그 쓰기가 수행됩니다. 1단계 커미트 자원에 관련되지 않은 트랜잭션에 대해서는 추가 레코드가 기록되지 않습니다.
com.ibm.websphere.tx.heuristicRetryLimit java.lang.String 0 트랜잭션 서비스가 커미트나 롤백과 같은 완료 신호를 재시도하는 횟수를 지정합니다. 자원 관리자로부터의 임시 예외 후 재시도가 발생합니다. 기본값, 0은 재시도 횟수에 대한 제한이 없음을 표시합니다.
com.ibm.websphere.tx.heuristicRetryWait java.lang.String 0 자원 관리자로부터의 임시 예외 후, 커미트나 롤백과 같은 완료 신호를 재시도하기 전에 트랜잭션 서비스가 대기하는 시간(초)을 지정합니다.
com.ibm.websphere.tx.LPSHeuristicCompletion java.lang.String ROLLBACK

(대소문자를 구분하지 않음)

1단계 커미트 자원의 결과를 알 수 없는 경우 마지막 참가자 지원이 있는 트랜잭션의 트랜잭션 서비스에서 사용될 경험적 완료 조치입니다. 값 ROLLBACK 또는 COMMIT는 이에 따라 2단계 커미트 자원을 완료합니다. 설정, MANUAL은 트랜잭션 서비스가 조치를 취하지 않고 2단계 커미트 자원을 인다우트(in-doubt) 상태로 두는 것을 의미합니다. 기본값은 ROLLBACK입니다.
com.ibm.websphere.tx.maximumTransactionTimeout java.lang.String 300 트랜잭션 제한시간 값의 상한(초)을 지정합니다. 이 제한시간 값은 기타 모든 트랜잭션 제한시간 값의 상한을 제한합니다.
com.ibm.websphere.tx.totalTranLifetimeTimeout java.lang.String 120 트랜잭션 서비스가 제한시간을 시작하기 전에 트랜잭션에 허용된 기본 최대 시간(초)을 지정합니다. 이 제한시간 초과가 발생하기 전에 완료 처리를 시작하지 않은 트랜잭션은 롤백됩니다.
com.ibm.websphere.tx.tranLogDirectory java.lang.String profiles\server name\tranlog 트랜잭션 서비스가 복구를 위해 로그 파일을 저장하는 이 서버에 대한 디렉토리 이름을 지정합니다.
com.ibm.websphere.tx.tranLogSize java.lang.String 1024 트랜잭션 로그 파일의 크기(KB)를 지정합니다. 최소 파일 크기는 64KB입니다. 기본값은 파일 크기를 1MB로 설정합니다.

주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rejb_emconproperties
파일 이름:rejb_emconproperties.html