package sampleear;
import java.sql.Connection;
import java.sql.PreparedStatement;

import javax.ejb.SessionContext;
import javax.ejb.Stateless;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.transaction.UserTransaction;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;

@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class MyStatelessSessionBean implements RemoteBusinessInterface {
	SessionContext ejbContext;
	public void setSessionContext(SessionContext context)
	{
		this.ejbContext = context;
	}
	static int count = 0;
	public String update(String tag) {
		try {
			InitialContext initCtx = new InitialContext();
			javax.sql.DataSource ds = 
				//(javax.sql.DataSource)initCtx.lookup("jca:/console.dbpool/oracleocitest/JCAManagedConnectionFactory/oracleocitest");
				(javax.sql.DataSource)initCtx.lookup("jca:/console.dbpool/oracleXATest/JCAManagedConnectionFactory/oracleXATest");
			Connection conn = ds.getConnection();
			UserTransaction ut = ejbContext.getUserTransaction();
			ut.begin();
			conn.setAutoCommit(false);
			PreparedStatement state = conn.prepareStatement("update msgseq set value="+(count++)+" where appname='a'");
			state.execute();
			
			ut.commit();
			conn.close();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		return this.getClass().getName()+ " updated " + tag;
	}

}
