Home Javacertification Bcd-guide Identify correct and incorrect statements about the Application Assembler's responsibilities, including the use of deployment descriptor elements related to transactions and the identifica

Ask Questions?

View Latest Questions

Advertisement


 
 

Identify correct and incorrect statements about the Application Assembler's responsibilities, including the use of deployment descriptor elements related to transactions and the identifica
Posted on: April 18, 2011 at 12:00 AM
This page discusses - Identify correct and incorrect statements about the Application Assembler's responsibilities, including the use of deployment descriptor elements related to transactions and the identifica

Identify correct and incorrect statements about the Application Assembler's responsibilities, including the use of deployment descriptor elements related to transactions and the identification of the methods of a particular bean type for which a transaction attribute must be specified.

There is NO mechanism for an Application Assembler to affect enterprise beans with bean-managed transaction (BMT) demarcation. The Application Assembler MUST NOT define transaction attributes for an enterprise bean with bean-managed transaction demarcation.

The Application Assembler can use the transaction attribute mechanism to manage transaction demarcation for enterprise beans using container-managed transaction demarcation. NOTE, the transaction attributes may be specified either by the Bean Provider or by the Application Assembler.

The Application Assembler uses the container-transaction elements to define the transaction attributes for the methods of session and entity bean home and component interfaces and for the onMessage methods of message-driven beans. Each container-transaction element consists of a list of one or MORE method elements, and the trans-attribute element. The container-transaction element specifies that all the listed methods are assigned the specified transaction attribute value. It is required that all the methods specified in a single container-transaction element be methods of the SAME enterprise bean.


</ejb-jar>
	...
	<container-transaction>
		<method>	
			<ejb-name>Employee</ejb-name>
			<method-intf>LocalHome</method-intf>
			<method-name>create</method-name>
			<method-params>
				<method-param>java.lang.String</method-param>
			</method-params>
		</method>
		<trans-attribute>Required</trans-attribute>
	</container-transaction>
	<container-transaction>
		<method>
			<ejb-name>Employee</ejb-name>
			<method-intf>LocalHome</method-intf>
			<method-name>findAll</method-name>
			<method-params />
		</method>
		<trans-attribute>Supports</trans-attribute>
	</container-transaction>
 	...
</ejb-jar>

					

The method element uses the ejb-name, method-name, and method-params elements to denote one or more methods of an enterprise bean's home and component interfaces. There are THREE legal styles of composing the method element:


<!-- Style 1 -->
<method>
	<ejb-name>EJBName</ejb-name>
	<method-name>*</method-name>
</method>

					

<!-- Style 2 -->
<method>
	<ejb-name>EJBName</ejb-name>
	<method-name>MethodName</method-name>
</method>

					

<!-- Style 3 -->
<method>
	<ejb-name>EJBName</ejb-name>
	<method-name>MethodName</method-name>
	<method-params>
		<method-param>ParameterType_1</method-param>
		...
		<method-param>ParameterType_N</method-param>
	</method-params>
</method>

					
Style 2 element takes precedence over Style 1 element. Style 3 element takes precedence over Style 2 and Style 1 elements.

The optional method-intf element can be used to differentiate between methods with the same name and signature that are multiply defined across the component and/or home interfaces (must be one of the following: Home, Remote, LocalHome, Local).

The following is an example of the specification of the transaction attributes in the deployment descriptor. The updatePhoneNumber method of the EmployeeRecord enterprise bean is assigned the transaction attribute Mandatory; all other methods of the EmployeeRecord bean are assigned the attribute Required. All the methods of the enterprise bean AardvarkPayroll are assigned the attribute RequiresNew.


<ejb-jar>
	...
	<assembly-descriptor>
		...

		<container-transaction>
			<method>
				<ejb-name>EmployeeRecord</ejb-name>
				<method-name>*</method-name>
			</method>
			<trans-attribute>Required</trans-attribute>
		</container-transaction>

		<container-transaction>
			<method>
				<ejb-name>EmployeeRecord</ejb-name>
				<method-name>updatePhoneNumber</method-name>
			</method>
			<trans-attribute>Mandatory</trans-attribute>
		</container-transaction>

		<container-transaction>
			<method>
				<ejb-name>AardvarkPayroll</ejb-name>
				<method-name>*</method-name>
			</method>
			<trans-attribute>RequiresNew</trans-attribute>
		</container-transaction>

	</assembly-descriptor>
</ejb-jar>

					
Advertisement


DMCA.com