Я программирую симуляцию на основе агентов на основе JADE Framework. В основном эта структура создает агенты (каждый агент имеет собственный поток) и предоставляет стандартизированные интерфейсы для связи между агентами.Проблемы с входом в SQL Server 2012 (64 бит)
Тем не менее, когда мои агенты созданы, они одновременно получают доступ к серверу MS-SQL 2012 (64-разрядный) (установленному на одном компьютере). Это очень просто утверждение, что возвращает идентификатор:
"SELECT GeoID FROM "
+ "[weatherman_de].[dbo].[geo]" + " WHERE lat_rot = "
+ loc.getLatit() + " AND long_rot = " + loc.getLongit();
Проблема заключается в том: Иногда, когда я начала мое приложение все работает отлично, это медленно, но работает нормально. Но иногда я получаю разные типы ошибок, которые приводят мое приложение к сбою непосредственно в начале. Либо это сброс соединения:
com.microsoft.sqlserver.jdbc.SQLServerException: Connection reset
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1352)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1339)
at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1654)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.Prelogin(SQLServerConnection.java:1117)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1038)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:817)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:700)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
или это соединение отказано:
com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP
connection to the host localhost, port 1433 has failed. Error:
"Connection refused: connect. Verify the connection properties.
Make sure that an instance of SQL Server is running on the host
and accepting TCP/IP connections at the port. Make sure that TCP
connections to the port are not blocked by a firewall.
Как и упоминалось выше, сообщения этой ошибки не происходит каждый раз, когда я бегу заявление. Я бы сказал, в 7 из 10 раз я получаю сообщения об ошибках (те же самые предварительные условия)
Когда мое приложение работает нормально, я проверил значения производительности:
- процесс NT Server использует 2,5 ГБ Рам и 50% Cpu.
- База данных сама по себе составляет около 1 ГБ и сохраняется на жестком диске M550.
- JAVA (затмение) принимает 2 ГБ ОЗУ (около 2500 потоков), а также
50% использования ЦП. CPU - это Intel 2500k (4 ядра)
Мое приложение детерминировано, поэтому они не являются случайными функциями или чем-то подобным, что может повлиять на производительность из-за каких-либо переходов IF или что-то еще. Выход (или должен быть) (когда он работает) всегда то же самое.
Есть ли какие-либо подсказки, где я могу начать стабилизировать мою базу данных? Я думаю об обновлении моего компьютера, но это последний вариант.
Вы имеете в виду DB.connections? Мне нужно их открыть, потому что во время выполнения (если все начинается), агенты постоянно получают доступ к базе данных. –
@ Даниэль Джипа. Я бы поставил это как комментарий, а не фактический ответ. Пожалуйста, прочитайте этот раздел о том, как написать хороший ответ в SO http://stackoverflow.com/help/how-to-answer – FutbolFan