Atomicity Test 1:

Run jsql from the DOS command prompt.

sql> select c_id from c_customer where c_credit = 'BC' and c_id < 100;
C_ID
2
9
32
42
56
59
68
59
73
76

We chose C_ID 2

Submitting a new order failed with the following message and exception traceback 
(copied verbatim from the browser window):

An Exception Occurred !!




The message of the exception is 
Credit check failed. Insufficient credit for the customer id entered 



		org.spec.jappserver.webbeans.OtherException:  Credit check failed. Insufficient credit for the customer id entered
	at org.spec.jappserver.webbeans.OrderSesBean.newOrder(OrderSesBean.java:182)
	at org.apache.jsp.submit_order_jsp._jspService(submit_order_jsp.java:191)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:432)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:356)
	at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:427)
	at org.apache.jsp.new_order_jsp._jspService(new_order_jsp.java:185)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:263)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2470)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
	at java.lang.Thread.run(Thread.java:536)

Nested Exception:
 




Use the Back button on the browser to go back to the previous page 


Back to Customer 


The log file for BES had the following:

org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.setEntityContext(OrderCmpEJB.java:466)
: found SequenceSesHome interface
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.setEntityContext(OrderCmpEJB.java:474)
: found CustomerEntHome interface
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.setEntityContext(OrderCmpEJB.java:482)
: found LargeOrderSesHome interface
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.setEntityContext(OrderCmpEJB.java:489)
: found ItemEntHome interface
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.setEntityContext(OrderCmpEJB.java:497)
: found OrderLineEntHome interface
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.ejbCreate(OrderCmpEJB.java:100)
: ejbCreate 
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.ejbCreate(OrderCmpEJB.java:108)
: Atomicity Test (1,2,3): Order Id: 50751
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.ejbCreate(OrderCmpEJB.java:128)
: Atomicity Test 3: OrderLineId: 1
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.getPriceWithDiscount(OrderCmpEJB.java:519)
: getPriceWithDiscount 
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.getPercentDiscount(OrderCmpEJB.java:590)
: getPercentDiscount
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.findCustomer(OrderCmpEJB.java:539)
: findCustomer
org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB at org.spec.jappserver.orders.orderent.ejb.OrderCmpEJB.checkCustomerCredit(OrderCmpEJB.java:567)
: checkCustomerCredit 

A check of the order status for the above Order Id, 50751, return a remote exception on the client side,
and an ObjectNotFound exception on the server side.

The following select statement returned no rows:

sql> select * from O_ORDERLINE where OL_O_ID = 50751;
