This tests the commit logic of transaction. An EJB webservice is invoked by a servlet. This webservice method uses REQUIRED TX_Attribute. It adds a row in the database table(CUSTOMER_cm1) created in the servlet. 

Here is the flow-

1. Standalone client invokes a servlet
2. Servlet creates table CUSTOMER_cm1 
3. Servlet starts a UserTransaction
4. Servlet adds a row in the CUSTOMER_cm1 table
5. Servlet calls the EJB webservice
6. EJB webservice adds a row in the CUSTOMER_cm1 table
7. Servlet commits the transaction
8. It is checked whether the data is correctly updated in the table.
9. Table CUSTOMER_cm1 is dropped
