多用户并发时,似乎是插入错!

nintyuui 2003-09-11 02:58:18
使用weblogic6.1自带的petstore+oracle9i

单用户使用不会出错,当多用户时,出错。
错误
resultCount = stmt.executeUpdate();
执行结果为resultCount=10,执行的是insert语句

queryString is: INSERT INTO orders(orderid,userid,orderdate,shipaddr1,shipaddr2,
shipcity,shipstate,shipzip,shipcountry,billaddr1,billaddr2,billcity,billstate,bi
llzip,billcountry,courier,totalprice, shiptofirstname,shiptolastname,billtofirst
name,billtolastname,creditcard,exprdate,cardtype, locale)VALUES (ordernum.nextva
l,'j2ee',to_date('09/11/2003','mm/dd/yyyy'),'901 San Antonio Road','MS UCUP02-20
6','Palo Alto','California','94303','USA','901 San Antonio Road','MS UCUP02-206'
,'Palo Alto','California','94303','USA','UPS',18.5,'ABC','XYX','ABC','XYX','9999
9999 9999 9999','01/2001','Visa', 'US_en' )
...全文
38 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nintyuui 2003-09-16
  • 打赏
  • 举报
回复
up
nintyuui 2003-09-11
  • 打赏
  • 举报
回复
源代码:
private int insertOrder(MutableOrderModel details) throws
OrderDAODBUpdateException,
OrderDAOAppException,
OrderDAOSysException {
PreparedStatement stmt = null;
int resultCount = 0, oid = -1;

if (!isValidData(details))
throw new OrderDAOAppException("Illegal data values for insert");

/* Create a new row in the database for this order */
String queryStr = "INSERT INTO " + DatabaseNames.ORDER_TABLE +
"(orderid,userid,orderdate,"
+ "shipaddr1,shipaddr2,shipcity,shipstate,shipzip,shipcountry,"
+ "billaddr1,billaddr2,billcity,billstate,billzip,billcountry,"
+ "courier,totalprice, "
+ "shiptofirstname,shiptolastname,"
+ "billtofirstname,billtolastname,"
+ "creditcard,exprdate,cardtype, locale)" + "VALUES ("
+ "ordernum.nextval" + ","
+ "'" + details.getUserId().trim() + "',"
+ "to_date('" + details.getOrderDate().getFullDateString()
+ "','mm/dd/yyyy')" + ","
+ "'"+details.getShipToAddr().getStreetName1().trim() +"',";
if (details.getShipToAddr().getStreetName2() != null)
queryStr += "'"+details.getShipToAddr().getStreetName2().trim() +
"',";
else
queryStr += "' ',";

queryStr += "'"+details.getShipToAddr().getCity().trim() + "',"
+ "'"+details.getShipToAddr().getState().trim() + "',"
+ "'"+details.getShipToAddr().getZipCode().trim() + "',"
+ "'"+details.getShipToAddr().getCountry().trim() + "',"
+ "'"+details.getBillToAddr().getStreetName1().trim() +"',";

if (details.getBillToAddr().getStreetName2() != null)
queryStr += "'"+details.getBillToAddr().getStreetName2().trim() +"',";
else
queryStr += "' ',";

queryStr += "'"+details.getBillToAddr().getCity().trim() + "',"
+ "'"+details.getBillToAddr().getState().trim() + "',"
+ "'"+details.getBillToAddr().getZipCode().trim() + "',"
+ "'"+details.getBillToAddr().getCountry().trim() + "',"
+ "'"+details.getCarrier().trim() + "',"
+ details.getTotalPrice() + ","
+ "'"+details.getShipToFirstName().trim() + "',"
+ "'"+details.getShipToLastName().trim() + "',"
+ "'"+details.getBillToFirstName().trim() + "',"
+ "'"+details.getBillToLastName().trim() + "',"
+ "'"+details.getCreditCard().getCardNo().trim() + "',"
+ "'"+details.getCreditCard().getExpiryDateString().trim() + "',"
+ "'"+details.getCreditCard().getCardType().trim() + "', "
+ "'"+I18nUtil.getLocaleString(details.getLocale()) + "'"
+ " )";

//Debug.println("queryString is: "+ queryStr);
//Debug.printError("queryString is: "+ queryStr);
try {
getDBConnection();
stmt = dbConnection.prepareStatement(queryStr);
resultCount = stmt.executeUpdate();
System.out.println(" dbConnection = " + dbConnection);
System.out.println(" stmt = " + stmt);
if ( resultCount != 1 ){
System.out.println("queryString is: "+ queryStr);
throw new OrderDAODBUpdateException("ERROR in ORDER_TABLE INSERT !! resultCount " + resultCount);
}else {
queryStr = "SELECT ordernum.currval from " + DatabaseNames.ORDER_TABLE;
ResultSet rs = stmt.executeQuery(queryStr);
if ( !rs.next() ) {
throw new OrderDAOAppException("ERROR in selecting OrderId !!");
} else {
oid = rs.getInt(1);
if (oid < 1)
throw new OrderDAOAppException("ERROR in getting OrderId !! orderId = "+ oid);
}
} // end else
} catch(SQLException se) {
se.printStackTrace();
throw new OrderDAOSysException("SQLException occured in insertOrder");
} finally {
try {
if(stmt != null) stmt.close();
closeConnection();
} catch(SQLException se) {
throw new OrderDAOSysException("SQLException while closing statement and connection");
}
} // end finally
return(oid);
} // end insertOrder

请各位大虾帮忙!
nintyuui 2003-09-11
  • 打赏
  • 举报
回复
com.sun.j2ee.blueprints.customer.order.exceptions.OrderDAODBUpdateException: ERR
OR in ORDER_TABLE INSERT !! resultCount 10
at com.sun.j2ee.blueprints.customer.order.dao.OrderDAOOracle.insertOrder
(OrderDAOOracle.java:129)
at com.sun.j2ee.blueprints.customer.order.dao.OrderDAOOracle.create(Orde
rDAOOracle.java:45)
at com.sun.j2ee.blueprints.customer.order.ejb.OrderEJB.ejbCreate(OrderEJ
B.java:77)
at com.sun.j2ee.blueprints.customer.order.ejb.OrderEJB_iygrjx_Impl.ejbCr
eate(OrderEJB_iygrjx_Impl.java:172)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.ejb20.manager.DBManager.create(DBManager.java:492)
at weblogic.ejb20.manager.DBManager.remoteCreate(DBManager.java:462)
at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:190)
at com.sun.j2ee.blueprints.customer.order.ejb.OrderEJB_iygrjx_HomeImpl.c
reate(OrderEJB_iygrjx_HomeImpl.java:75)
at com.sun.j2ee.blueprints.customer.customer.ejb.CustomerEJB.createOrder
(CustomerEJB.java:237)
at com.sun.j2ee.blueprints.customer.customer.ejb.CustomerEJB_hso629_EOIm
pl.createOrder(CustomerEJB_hso629_EOImpl.java:217)
at com.sun.j2ee.blueprints.petstore.control.ejb.OrderHandler.perform(Ord
erHandler.java:87)
at com.sun.j2ee.blueprints.petstore.control.ejb.StateMachine.handleEvent
(StateMachine.java:82)
at com.sun.j2ee.blueprints.petstore.control.ejb.ShoppingClientController
EJB.handleEvent(ShoppingClientControllerEJB.java:133)
at com.sun.j2ee.blueprints.petstore.control.ejb.ShoppingClientController
EJB_5nqa4g_EOImpl.handleEvent(ShoppingClientControllerEJB_5nqa4g_EOImpl.java:122
)
at com.sun.j2ee.blueprints.petstore.control.web.ShoppingClientController
WebImpl.handleEvent(ShoppingClientControllerWebImpl.java:140)
at com.sun.j2ee.blueprints.petstore.control.web.RequestProcessor.process
Request(RequestProcessor.java:84)
at com.sun.j2ee.blueprints.petstore.control.web.MainServlet.doProcess(Ma
inServlet.java:111)
at com.sun.j2ee.blueprints.petstore.control.web.MainServlet.doGet(MainSe
rvlet.java:91)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:2495)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2204)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
javax.ejb.CreateException: ERROR in ORDER_TABLE INSERT !! resultCount 10
at com.sun.j2ee.blueprints.customer.order.ejb.OrderEJB.ejbCreate(OrderEJ
B.java:83)
at com.sun.j2ee.blueprints.customer.order.ejb.OrderEJB_iygrjx_Impl.ejbCr
eate(OrderEJB_iygrjx_Impl.java:172)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.ejb20.manager.DBManager.create(DBManager.java:492)
at weblogic.ejb20.manager.DBManager.remoteCreate(DBManager.java:462)
at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:190)
at com.sun.j2ee.blueprints.customer.order.ejb.OrderEJB_iygrjx_HomeImpl.c
reate(OrderEJB_iygrjx_HomeImpl.java:75)
at com.sun.j2ee.blueprints.customer.customer.ejb.CustomerEJB.createOrder
(CustomerEJB.java:237)
at com.sun.j2ee.blueprints.customer.customer.ejb.CustomerEJB_hso629_EOIm
pl.createOrder(CustomerEJB_hso629_EOImpl.java:217)
at com.sun.j2ee.blueprints.petstore.control.ejb.OrderHandler.perform(Ord
erHandler.java:87)
at com.sun.j2ee.blueprints.petstore.control.ejb.StateMachine.handleEvent
(StateMachine.java:82)
at com.sun.j2ee.blueprints.petstore.control.ejb.ShoppingClientController
EJB.handleEvent(ShoppingClientControllerEJB.java:133)
at com.sun.j2ee.blueprints.petstore.control.ejb.ShoppingClientController
EJB_5nqa4g_EOImpl.handleEvent(ShoppingClientControllerEJB_5nqa4g_EOImpl.java:122
)
at com.sun.j2ee.blueprints.petstore.control.web.ShoppingClientController
WebImpl.handleEvent(ShoppingClientControllerWebImpl.java:140)
at com.sun.j2ee.blueprints.petstore.control.web.RequestProcessor.process
Request(RequestProcessor.java:84)
at com.sun.j2ee.blueprints.petstore.control.web.MainServlet.doProcess(Ma
inServlet.java:111)
at com.sun.j2ee.blueprints.petstore.control.web.MainServlet.doGet(MainSe
rvlet.java:91)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:2495)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2204)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)

17,082

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧