13.05.2011 15:36
Всем добрый день.
Работал с версиями Кристалла 4 до 5.1. Но сейчас возникла острая необходимость работы с мягкими чеками - нашел что они есть более-менее в нужной интерпретации имеются начиная с версии 5.2.79. Пытаюсь ставить SetRetail Pro 5.2.80.004 - установка происходит абсолютно нормально, без ошибок.
Но затем во время работы начинают в логе Windows появляться сообщения от SQL сервера вида "login 'sa' failed". Анализ показал, что создается просто прорва коннектов к SQL серверу, а в логе от cashserver (который на жабе) куча сообщений об ошибках коннекта, хотя пароль точно верный. Судя по всему SQL сервер просто начинает отказывать в коннектах. Вот логи

Код:
13.05.2011 17:41:10.875 INFO : *** STARTING ***
13.05.2011 17:41:10.875 INFO : ************************
13.05.2011 17:41:10.875 INFO : * Build id: 08.12.2010 *
13.05.2011 17:41:10.875 INFO : ************************
13.05.2011 17:41:10.875 WARN : Property WaitConfirm not found.
13.05.2011 17:41:10.875 WARN : Property CashTimeoutAuth not found.
13.05.2011 17:41:13.718 DEBUG: Initialized pool DEFAULTDATALINK; url = jdbc:sqlserver://10.24.124.245;databasename=SES
13.05.2011 17:41:13.734 INFO : DB connection checker started.
13.05.2011 17:41:13.828 INFO : Monitor listener started
13.05.2011 17:41:13.828 INFO : Windows cashes listener started
13.05.2011 17:42:00.000 INFO : Client connected from 127.0.0.1
13.05.2011 17:42:10.453 INFO : Fri May 13 17:42:10 GMT+07:00 2011  Запрос на регистрацию от кассы №98 remote port is 1051 remote ip /10.24.124.248
13.05.2011 17:42:10.453 DEBUG: Fri May 13 17:42:10 GMT+07:00 2011  CID=2
13.05.2011 17:42:10.500 DEBUG: Подключение кассы № 98 (ConnectionID = 2; IP 10.24.124.248)
13.05.2011 17:42:10.515 DEBUG: DosCash №98	Fri May 13 17:42:10 GMT+07:00 2011  Запустился поток для кассы №98
13.05.2011 17:42:12.390 ERROR: Can't create a new connection for jdbc:sqlserver://10.24.124.245;databasename=SES: Login failed for user 'sa'.
13.05.2011 17:42:12.390 TRACE: Can't create a new connection for jdbc:sqlserver://10.24.124.245;databasename=SES
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:156)
	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:240)
	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:78)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2636)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2046)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2034)
	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4003)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1550)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1207)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(SQLServerConnection.java:1054)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:758)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at ru.crystalservice.cashserver.DBConnectionManager$DBConnectionPool.newConnection(DBConnectionManager.java:547)
	at ru.crystalservice.cashserver.DBConnectionManager$DBConnectionPool.checksOutConnection(DBConnectionManager.java:458)
	at ru.crystalservice.cashserver.DBConnectionManager$DBConnectionPool.getConnection(DBConnectionManager.java:473)
	at ru.crystalservice.cashserver.DBConnectionManager$DBConnectionPool.getConnection(DBConnectionManager.java:496)
	at ru.crystalservice.cashserver.DBConnectionManager.getConnection(DBConnectionManager.java:137)
	at ru.crystalservice.cashserver.DosCashConnectionThread.connect(DosCashConnectionThread.java:102)
	at ru.crystalservice.cashserver.CashPutDBDataThread.saveCheques(CashPutDBDataThread.java:52)
	at ru.crystalservice.cashserver.CashPutDBDataThread.run(CashPutDBDataThread.java:284)
13.05.2011 17:42:32.687 WARN : DosCash №98: 	trying to connect (2)
13.05.2011 17:42:32.703 ERROR: Can't create a new connection for jdbc:sqlserver://10.24.124.245;databasename=SES: Login failed for user 'sa'.
13.05.2011 17:42:32.703 TRACE: Can't create a new connection for jdbc:sqlserver://10.24.124.245;databasename=SES
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'sa'.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:156)
	at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:240)
	at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:78)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2636)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2046)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2034)
	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4003)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1550)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1207)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.loginWithoutFailover(SQLServerConnection.java:1054)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:758)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:842)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at ru.crystalservice.cashserver.DBConnectionManager$DBConnectionPool.newConnection(DBConnectionManager.java:547)
	at ru.crystalservice.cashserver.DBConnectionManager$DBConnectionPool.checksOutConnection(DBConnectionManager.java:458)
	at ru.crystalservice.cashserver.DBConnectionManager$DBConnectionPool.getConnection(DBConnectionManager.java:473)
	at ru.crystalservice.cashserver.DBConnectionManager$DBConnectionPool.getConnection(DBConnectionManager.java:496)
	at ru.crystalservice.cashserver.DBConnectionManager.getConnection(DBConnectionManager.java:137)
	at ru.crystalservice.cashserver.DosCashConnectionThread.connect(DosCashConnectionThread.java:102)
	at ru.crystalservice.cashserver.CashPutDBDataThread.saveCheques(CashPutDBDataThread.java:52)
	at ru.crystalservice.cashserver.CashPutDBDataThread.run(CashPutDBDataThread.java:284)
13.05.2011 17:42:53.062 WARN : DosCash №98: 	trying to connect (3)
13.05.2011 17:42:53.062 ERROR: Can't create a new connection for jdbc:sqlserver://10.24.124.245;databasename=SES: Login failed for user 'sa'.
В наличии имеются чистый абсолютно Win2003 Server Std SP2, MSSQL2000 SP4 (пробовал и на 2005 - таже петрушка) - и такая засада. Версия 5.2.75 ставится и работает нормально, но в ней нет запрета обработки скидок на мягких чеках, а она очень нужна.

Прошу, научите как правильно настроить этот новый кассовый сервер на жабе, уже всю голову сломал! :black_eye:
14.05.2011 11:55
Немного разобрался. Сбои начинались после старта досовой кассы. В каталоге CRUKM_FP лежит другой cash.exe, значительно больше по размеру оригинального. Подскажите, чем он отличается от cash.exe который сразу идет в CRUKM и есть ли у него специфические настройки?
Стоит ли переходить на жабовский кассовый сервер или лучше пока остаться на старом cashserv?
Кроме того, не удается заставить работать монитор кассового оборудования monitor.exe с кассовым сервером на жабе, он его просто не видит. Это так и задумано?
15.05.2011 12:53
Про monitor.exe да это так задумано.
для работы с новой службой есть утилита setmonitor.
16.05.2011 08:14
Про монитор разобрался. Действительно, он работает только со старым cashserv.
А вот победить ошибку "Login failed for user 'sa'" я так и не смог. Она возникает в тот момент, когда касса пытается что-либо передать на сервер - например попытался выбить чек - он так на сервер и не пришел. Три дня бился, так и не понял, что хочет система... Может кто сталкивался с таким? Может это глюк конкретной сборки 5.2.80.004 и надо искать патчи?
16.05.2011 09:32
Насколько я помню, sa - рутовый пользователь MS SQL, может, для него пароль можно как-то поменять в подключении и в самой БД?
16.05.2011 09:39
Да в том-то и дело - пароль на SA задан нормально, в UDL файле прописан, в INI и CONF файлах тоже. В общем видимых отклонений нет - сервисы стартуют, цепляются к базе, всё нормально. И потом такой финт - уже не знаю что хочет система...
16.05.2011 10:02
Есть какой-то еще клиент, который бы мог попробовать использовать это подключение с этой машины, для sa?
16.05.2011 12:16
Конечно есть, например учетная система цепляется к SQL серверу для получения чеков, при выгрузке групп продаж и много еще для чего - всё отрабатывает четко. Плюс я спокойно зацепляюсь SQL профайлером под SA. Плюс ко всему сервисы нормально стартуют - коннекты есть. Но вот дальше что происходит, непонятно.
16.05.2011 16:30
тут всё прально прописано?
16.05.2011 17:12
У меня магазин, там 3 коннекта, используется один из них (остальные пробовал грохать, пробовал оставлять - бестолку), и логин и пароль в нем верные.
Анализ логов в SQL profiler показывает ошибку логина с подстатусом 1-nonpooled (а не неверный логин-пароль) - похоже ошибка в самом кассовом сервере. Подстановка кассового сервера от 79 релиза ошибку убирает, но страшно использовать такую конструкцию.
Сейчас достал апдейт 5.2.80.007 (огромное спасибо друзьям) - буду пробовать с ним, может и захорошеет.
По крайней мере история изменений содержит ошибки вида
39 SR-3889
Исправлена ошибка, когда параметр dbOpenPassword не работает в Cashserver
Копмоненты
svc CashServer
вообще красота, за семь лет ничего не поменялось, точнее поменялось, но не в самую лучшую сторону...
А вообще, какой щас последний релиз сета?
Часовой пояс GMT +3, время: 09:21.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.