Я получаю ORA-12519
без соответствующего обработчика-исключения службы, когда я использую бесконечные циклы в моем коде. Однако этот код отлично работает в других системах.
Это мой код
public static void main(String args[]) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String dbHost = "localhost";
String database = "scott";
String dbUsername = "scott";
String dbPassword = "scott";
String smsReceiver = "";
String dbUrl = "jdbc:oracle:thin:@localhost:1521:xe";
while (true) {
ResultSet rs = null;
conn = DriverManager.getConnection(dbUrl, dbUsername, dbPassword);
try {
Statement smnt = null;
smnt = conn.createStatement();
String sql = "select count(*) from ozekismsin";
rs = smnt.executeQuery(sql);
rs.next();
int count = rs.getInt(1);
if (count != 0) {
System.out.println("success");
sql = "select * from ozekismsin";
rs = smnt.executeQuery(sql);
rs.next();
String msg = rs.getString("msg");
// smsReceiver=rs.getString("sender");
System.out.println(msg);
StringTokenizer st = new StringTokenizer(msg, " ");
st.nextToken();
String source = st.nextToken();
st.nextToken();
String dest = st.nextToken();
System.out.println(source + " " + dest);
PreparedStatement preparedStatement = null;
sql = "select id from new1 where name=?";
preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1, source);
rs = preparedStatement.executeQuery();
rs.next();
int s = rs.getInt("id");
System.out.println(source + " " + dest);
sql = "select id from new1 where name=?";
preparedStatement = conn.prepareStatement(sql);
preparedStatement.setString(1, dest);
System.out.println(s);
rs = preparedStatement.executeQuery();
rs.next();
int d = rs.getInt(1);
a = s;
test1 ob = new test1();
ob.dijkstra(s, d);
String sqlInsert = "INSERT INTO "
+ "ozekismsout (receiver,msg,status) "
+ "VALUES " + "('" + smsReceiver + "','"
+ message + "','send')";
if (smnt.executeUpdate(sqlInsert) != 0) {
System.out.println("OK");
System.out.println(message);
} else {
System.out.println("ERROR");
}
sql = "delete from ozekismsin";
smnt.executeQuery(sql);
sql = "commit";
smnt.executeQuery(sql);
} // end of if
smnt.close();
conn.close();
} // end of try in while
finally {
try {
rs.close();
} catch (Exception e) {
System.out.println("exception caught");
}
} // end of finally
} // end of while
} // end of outer try
catch (Exception ex) {
System.out.println("Exception: " + ex.getMessage());
ex.printStackTrace();
}
} // end of main
Этот код отлично работает в других системах. Но здесь он работает, только если я удаляю бесконечный цикл.
Пожалуйста, помогите мне.
Ошибка ORA-12519 может быть вызвана текущим подключением (например, сеансы concurrernt) превышает максимальную допустимую величину для экземпляра Oracle.
Попросите своего администратора баз данных рассказать вам, какие ограничения подключены, - эти параметры зависят от базы данных, а некоторые значения имеют значения по умолчанию. Просить.
Поскольку ваши циклы кода @AlexPoole отмечали, что вы исчерпываете ресурсы, вы можете создавать множество соединений и не выпускать их, например. Я не могу точно сказать. ошибка 12519 - проблема ресурса соединения. Период. Как ты это сделал, я не знаю.