/**
* 获取书籍总点击量
*
* @param bookid 书籍id
* @return 书籍总点击量
* @throws Exception
*/
@Override
public int getClickAllById(int bookid) throws Exception {
ResultSet rs = null;
DataParameter[] parameters = new DataParameter[] {
adoHelper.getReturnParameter(),
adoHelper.getParameter("inintbookid", bookid, DataType.INTEGER),
adoHelper.getOutputParameter("outcurlist", DataType.CURSOR) };
rs = adoHelper.executeReader(Config.getConfig("bookconnectionstring"), "FN_GETBOOKALLINFOBYID",
parameters);
int clickAll = 0;
if (rs.next()) {
clickAll = rs.getInt("CLICKRATE_ALL");
}
return clickAll;
}
调用这个存储函数,传入的bookid有些可以执行成功,有些却报异常。异常信息是:
2015/12/21 16:43:28 | INFO - MLog - MLog clients using log4j logging.
INFO | jvm 1 | 2015/12/21 16:43:28 | INFO - C3P0Registry - Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
INFO | jvm 1 | 2015/12/21 16:43:28 | INFO - stractPoolBackedDataSource - Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> true, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> z8kflt9d1iavakf20c46j|141dddba, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> oracle.jdbc.driver.OracleDriver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> z8kflt9d1iavakf20c46j|141dddba, idleConnectionTestPeriod -> 60, initialPoolSize -> 3, jdbcUrl -> jdbc:oracle:thin:@orabooksyncdb.qdintra.com:1521:cmfu162, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 60, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 5, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 1, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
INFO | jvm 1 | 2015/12/21 16:43:29 | ERROR - Log4j - 获取书籍总点击量失败_bookID:3,173,393,ex:java.sql.SQLException: 调用存储过程[connection:oracle1,procedureName:FN_GETBOOKALLINFOBYID,database:jdbc:oracle:thin:@oracoredb2.qdintra.com:1521:cmfu]出现异常,ex:java.sql.SQLException: ORA-06550: line 1, column 13:
INFO | jvm 1 | 2015/12/21 16:43:29 | PLS-00201: identifier 'FN_GETBOOKALLINFOBYID' must be declared
INFO | jvm 1 | 2015/12/21 16:43:29 | ORA-06550: line 1, column 7:
INFO | jvm 1 | 2015/12/21 16:43:29 | PL/SQL: Statement ignored
INFO | jvm 1 | 2015/12/21 16:43:29 | !
然后我这个做了定时任务,每15分钟执行一次这个程序,定时用的Timer。
数据库用的是Oracle