[ТЕМА ЗАКРЫТА]
13.05.2011 15:36
GreatLoki
 
Всем добрый день.
Работал с версиями Кристалла 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
GreatLoki
 
Немного разобрался. Сбои начинались после старта досовой кассы. В каталоге CRUKM_FP лежит другой cash.exe, значительно больше по размеру оригинального. Подскажите, чем он отличается от cash.exe который сразу идет в CRUKM и есть ли у него специфические настройки?
Стоит ли переходить на жабовский кассовый сервер или лучше пока остаться на старом cashserv?
Кроме того, не удается заставить работать монитор кассового оборудования monitor.exe с кассовым сервером на жабе, он его просто не видит. Это так и задумано?
15.05.2011 12:53
TANGOR
 
Про monitor.exe да это так задумано.
для работы с новой службой есть утилита setmonitor.
16.05.2011 08:14
GreatLoki
 
Про монитор разобрался. Действительно, он работает только со старым cashserv.
А вот победить ошибку "Login failed for user 'sa'" я так и не смог. Она возникает в тот момент, когда касса пытается что-либо передать на сервер - например попытался выбить чек - он так на сервер и не пришел. Три дня бился, так и не понял, что хочет система... Может кто сталкивался с таким? Может это глюк конкретной сборки 5.2.80.004 и надо искать патчи?
16.05.2011 09:32
John Doe
 
Насколько я помню, sa - рутовый пользователь MS SQL, может, для него пароль можно как-то поменять в подключении и в самой БД?
16.05.2011 09:39
GreatLoki
 
Да в том-то и дело - пароль на SA задан нормально, в UDL файле прописан, в INI и CONF файлах тоже. В общем видимых отклонений нет - сервисы стартуют, цепляются к базе, всё нормально. И потом такой финт - уже не знаю что хочет система...
16.05.2011 10:02
John Doe
 
Есть какой-то еще клиент, который бы мог попробовать использовать это подключение с этой машины, для sa?
16.05.2011 12:16
GreatLoki
 
Конечно есть, например учетная система цепляется к SQL серверу для получения чеков, при выгрузке групп продаж и много еще для чего - всё отрабатывает четко. Плюс я спокойно зацепляюсь SQL профайлером под SA. Плюс ко всему сервисы нормально стартуют - коннекты есть. Но вот дальше что происходит, непонятно.
16.05.2011 16:30
TANGOR
 
тут всё прально прописано?
16.05.2011 17:12
GreatLoki
 
У меня магазин, там 3 коннекта, используется один из них (остальные пробовал грохать, пробовал оставлять - бестолку), и логин и пароль в нем верные.
Анализ логов в SQL profiler показывает ошибку логина с подстатусом 1-nonpooled (а не неверный логин-пароль) - похоже ошибка в самом кассовом сервере. Подстановка кассового сервера от 79 релиза ошибку убирает, но страшно использовать такую конструкцию.
Сейчас достал апдейт 5.2.80.007 (огромное спасибо друзьям) - буду пробовать с ним, может и захорошеет.
По крайней мере история изменений содержит ошибки вида
39 SR-3889
Исправлена ошибка, когда параметр dbOpenPassword не работает в Cashserver
Копмоненты
svc CashServer
вообще красота, за семь лет ничего не поменялось, точнее поменялось, но не в самую лучшую сторону...
А вообще, какой щас последний релиз сета?
16.05.2011 18:49
TANGOR
 
ну вот 80.007 последний...
а по поводу nonpool у потоков обмена с кассой есть pool конектов в БД
это тоже там в соседнем поле настраивается...
но это для транспорта...

а вот про настройки самой службы?
файлик cashserver.conf
такой же?

dbHost=127.0.0.1
dbName=SES
dbUser=sa
dbPassword=gtspd
dbOpenPassword=mssql
dbCharset=windows-1251
16.05.2011 19:15
GreatLoki
 
Также, только пароль, естественно, другой (и открытый и шифрованный). Сама служба стартует и коннектится к БД нормально, её уже после начинает колбасить. Завтра прокатаю обновление и отпишусь о результатах.
17.05.2011 19:24
GreatLoki
 
Так, установка обновления помогла - система заработала без ошибок.
Осталось разобраться со внутренним кредитом и отображением списка дисконтных карт.

Почему-то в новой системе сумма оплаты внутренним кредитом имеет ограничение - на нее действуют ограничения на размер скидки на товар и ограничение скидки на группу товаров.

Плюс ко всему, в новой системе не получается вызвать список дисконтных карт на ККМ - кнопка "информация по локальным картам" не работает почему-то.
26.05.2011 09:57
Stanislaw
 
Цитата:
GreatLoki ...только пароль, естественно, другой (и открытый и шифрованный)...
Немного запоздало, но сообщу, что именно в этом проблема. Начиная с версии 79.003 служба cashserver не может полноценно работать если для подключения к SQL используется пароль, отличный от "mssql". Имя для подключения может быть любым - главное, чтобы пароль был "правильным". Сейчас это видимо поправили.

Кстати, с каким апдейтом всё заработало?
26.05.2011 17:57
GreatLoki
 
Проблема не в этом. Даже ихний стандартный пароль "mssql" не работал. После установки апдейта 5.2.80.007 проблема с коннектом не проявляется. Правда, по традиции, всплыли совсем другие проблемы.
31.07.2011 23:13
Telefonkin
 
Недавно сталкивался. Выход - слишком замороченный пароль я поставил на sa. Он не терпит спец символов, не большое кол-во знаков (не более 6 вроде)... Попробуйте поставить mysql, может заработает))
08.08.2011 12:09
Nikitka
 
TANGOR позвони пожалуйста
08.08.2011 13:21
TANGOR
 
Цитата:
Nikitka TANGOR позвони пожалуйста
Ага, вот такая же фигня... уже раз 5 пытался связаться с кем-нибудь и реально помочь...
Хотя админы мне обещали дать возможность отправки личных сообщений...
но пока глухо...

Вобщем описывай проблему, буду помогать решать её письменно :)
05.09.2011 18:35
kagay
 
Ошибки с множеством коннектов к SQL серверу, нет в версии 80.000 и она будет поправлена в 80.010
Можете взять cashserver из 80.000
Опции темы


Часовой пояс GMT +3, время: 01:29.

 

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