BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 29 мар 2024, 01:47

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
СообщениеДобавлено: 04 мар 2014, 11:33 
Не в сети

Зарегистрирован: 18 июн 2012, 12:08
Сообщения: 68
Карма: 0
Второй месяц наблюдается проблема с выполнением глобального скрипта планировщиком.
Скрипт выдергивает абонентов определенной группы и добавляет временный лимит.Скрипт выполняется перед снятием абонентской платы,он вытаскивает значение абонентской платы,текущий баланс и смотрит насколько изменится баланс после снятия абоненткой платы,если текущего лимита недостаточно,чтобы абонент продолжал работать,меняет значение лимита,точнее снижает его на время.
Вручную скрипт выполняется нормально,однако уже не первый месяц автоматически планировщиком он не отрабатывает и выдает следующую ошибку:
-----------------------------------------------------------------------------------------------------------
03-01/00:00:02 INFO [Thread-3] TaskExecuter - TaskExecuter => reloadTasks()
03-01/00:00:02 INFO [Thread-3] TaskExecuter - Task #1: bitel.billing.server.npay.Calculator
03-01/00:00:02 INFO [Thread-3] TaskExecuter - Task #2: bitel.billing.server.script.global.bean.GlobalScriptTimer
03-01/00:00:02 INFO [Thread-3] TaskExecuter - Task #3: bitel.billing.server.contract.LimitRestorer
03-01/01:20:02 INFO [Thread-3] TaskExecuter - Starting periodic task #2: bitel.billing.server.script.global.bean.GlobalScriptTimer
03-01/01:20:02 INFO [pool-2-thread-1] ChangeLimit - SELECT id FROM contract WHERE gr&(1<<6) > 0;
03-01/01:20:02 INFO [pool-2-thread-1] ChangeLimit - SELECT id FROM contract WHERE gr&(1<<6) > 0;
03-01/01:20:02 INFO [pool-2-thread-1] ChangeLimit - SELECT id FROM contract WHERE gr&(1<<6) > 0;147
03-01/01:20:02 INFO [pool-2-thread-1] ChangeLimit - abonCost=30.0
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - ru.bitel.bgbilling.common.BGException: java.sql.SQLException: Can't call commit when autocommit=true
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at bitel.billing.server.contract.bean.LimitManager.lowLimit(LimitManager.java:692)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at ChangeLimit.execute(ChangeLimit.java:70)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.bean.GlobalScriptInvoker.invoke(GlobalScriptInvoker.jav
a:22)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.GlobalScriptServiceImpl.executeGlobalScript(GlobalScrip
tServiceImpl.java:75)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeJava(GlobalScriptTimer.java:81
)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeTask(GlobalScriptTimer.java:48
)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:74)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at java.lang.Thread.run(Thread.java:722)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - Caused by: java.sql.SQLException: Can't call commit when autocommit=true
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:934)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1646)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.server.util.PoolGuardConnectionWrapper.commit(PoolGuardConnectionWrapper.jav
a:73)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - at bitel.billing.server.contract.bean.LimitManager.lowLimit(LimitManager.java:688)
03-01/01:20:02 ERROR [pool-2-thread-1] LoggingPrintStream - ... 9 more
-------------------------------------------------------------------------------------------------------------------------------------
Вот собственно сам скрипт:
public class ChangeLimit
extends GlobalScriptBase
{

Logger logger = Logger.getLogger( ChangeLimit.class);

public Float getAbonPays(Integer cid,Connection con)
throws Exception {

String query = "SELECT n.data FROM contract c LEFT JOIN contract_tariff AS t ON c.id=t.cid LEFT JOIN tariff_plan AS p ON t.tpid=p.id LEFT JOIN module_tariff_tree as m ON m.tree_id=p.tree_id LEFT JOIN mtree_node as n ON n.mtree_id=m.id WHERE m.mid=2 and c.id = ? and n.type like '%cost%' and ( t.date2 is NULL or t.date2 > now());";

PreparedStatement getAbonPay = con.prepareStatement( query );
Float abonCost = 0.0f;
getAbonPay.setInt( 1,cid );
ResultSet abonPay = getAbonPay.executeQuery();
while ( abonPay.next() ) {
String abonPayCostData = abonPay.getString(1);
String[] abonPayCostDataArray = abonPayCostData.split("%");
abonCost = abonCost + Float.parseFloat(abonPayCostDataArray[1].split("&")[1]);
}
logger.info("abonCost=" + abonCost);
return abonCost;
}

@Override
public void execute( Setup setup, ConnectionSet connectionSet )
throws Exception
{
Connection con = connectionSet.getConnection();
ContractManager cmanager = new ContractManager(con);
BalanceUtils bmanager = new BalanceUtils(con);
LimitManager lmanager = new LimitManager(con);
Date curdate = new Date();
String sqlreq = "SELECT id FROM contract WHERE gr&(1<<6) > 0;";
logger.info(sqlreq);
try
{
PreparedStatement ps = con.prepareStatement(sqlreq);
ResultSet rs = ps.executeQuery();
logger.info(sqlreq);
while (rs.next()) {
Integer cid = rs.getInt("id");
logger.info(sqlreq + cid );
Contract contract = cmanager.getContractById(cid);
BigDecimal curLimit = contract.getBalanceLimit();
BigDecimal curBalance = bmanager.getBalance(curdate,cid);
BigDecimal stockval = new BigDecimal("-10.0");
String abonDebtSt = Float.toString(getAbonPays(cid,con));
BigDecimal abonDebt = new BigDecimal(abonDebtSt);
BigDecimal Debt = curBalance.subtract(abonDebt);
if ( curLimit.compareTo(Debt) > 0 ) {
lmanager.lowLimit(cid,curLimit.subtract(Debt.add(stockval)),19);
logger.info("Договор №" + cid + " " + contract.getComment() + "лимит временно изменен со значения:" + curLimit + " до значения:" + Debt.add(stockval) + " на " + curLimit.subtract(Debt.add(stockval)));
}
}
} catch (SQLException ex ) {
logger.info("Message: " + ex.getMessage());
}
}

}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 мар 2014, 11:35 
Не в сети

Зарегистрирован: 18 июн 2012, 12:08
Сообщения: 68
Карма: 0
А да забыл:
Информация о версии:

Клиент: вер. 5.2 сборка 1189 от 23.07.2013 15:29:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_26
ВНИМАНИЕ: Необходимо обновить таймзоны
Сервер: вер. 5.2 сборка 1526 от 23.07.2013 15:29:29
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_01
ВНИМАНИЕ: Спецификация версии 1.7 не рекомендуется

bill вер. 5.2 сборка 309 от 18.07.2013 14:33:12
card вер. 5.2 сборка 203 от 21.06.2013 20:24:27
dba вер. 5.2 сборка 150 от 12.10.2012 20:00:49
inet вер. 5.2 сборка 1213 от 24.07.2013 15:33:55
npay вер. 5.2 сборка 204 от 15.07.2013 19:23:12
reports вер. 5.2 сборка 193 от 28.02.2013 10:57:03
rscm вер. 5.2 сборка 172 от 24.04.2013 11:02:54
voiceip вер. 5.2 сборка 207 от 22.07.2013 15:28:03


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 мар 2014, 17:49 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
e.fatoby писал(а):
А да забыл:
Информация о версии:

Клиент: вер. 5.2 сборка 1189 от 23.07.2013 15:29:21
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_26
ВНИМАНИЕ: Необходимо обновить таймзоны
Сервер: вер. 5.2 сборка 1526 от 23.07.2013 15:29:29
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_01
ВНИМАНИЕ: Спецификация версии 1.7 не рекомендуется

bill вер. 5.2 сборка 309 от 18.07.2013 14:33:12
card вер. 5.2 сборка 203 от 21.06.2013 20:24:27
dba вер. 5.2 сборка 150 от 12.10.2012 20:00:49
inet вер. 5.2 сборка 1213 от 24.07.2013 15:33:55
npay вер. 5.2 сборка 204 от 15.07.2013 19:23:12
reports вер. 5.2 сборка 193 от 28.02.2013 10:57:03
rscm вер. 5.2 сборка 172 от 24.04.2013 11:02:54
voiceip вер. 5.2 сборка 207 от 22.07.2013 15:28:03



Обновитесь..У нас уже давно autocommit=true в глобальных скриптах, у вас старая версия.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 01 апр 2014, 10:54 
Не в сети

Зарегистрирован: 18 июн 2012, 12:08
Сообщения: 68
Карма: 0
Обновил вчера версию софта:
Информация о версии:
Клиент: вер. 5.2 сборка 1205 от 19.03.2014 15:16:50
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.6.0_26
ВНИМАНИЕ: Необходимо обновить таймзоны
Сервер: вер. 5.2 сборка 1584 от 27.03.2014 14:31:04
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_01
ВНИМАНИЕ: Спецификация версии 1.7 не рекомендуется

bill вер. 5.2 сборка 317 от 05.02.2014 19:22:08
card вер. 5.2 сборка 205 от 03.12.2013 13:09:40
dba вер. 5.2 сборка 151 от 01.10.2013 17:52:42
inet вер. 5.2 сборка 1301 от 31.03.2014 16:27:05
npay вер. 5.2 сборка 206 от 14.11.2013 18:57:49
reports вер. 5.2 сборка 196 от 23.01.2014 15:06:15
rscm вер. 5.2 сборка 172 от 24.04.2013 11:02:54
voiceip вер. 5.2 сборка 209 от 23.01.2014 18:25:25

Ничего не изменилось,сегодня скрипт вновь не отработал,выдал ту же самую ошибку:
4-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - ru.bitel.bgbilling.common.BGException: java.sql.SQLException: Can't call commit when autocommit=true
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at bitel.billing.server.contract.bean.LimitManager.lowLimit(LimitManager.java:692)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at ChangeLimit.execute(ChangeLimit.java:70)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.bean.GlobalScriptInvoker.invoke(GlobalScriptInvoker.java:22)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.script.server.GlobalScriptServiceImpl.executeGlobalScript(GlobalScriptServiceImpl.java:75)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeJava(GlobalScriptTimer.java:81)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at bitel.billing.server.script.global.bean.GlobalScriptTimer.executeTask(GlobalScriptTimer.java:48)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.kernel.task.server.TaskBase.run(TaskBase.java:74)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at java.lang.Thread.run(Thread.java:722)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - Caused by: java.sql.SQLException: Can't call commit when autocommit=true
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:934)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1646)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at org.apache.commons.dbcp.DelegatingConnection.commit(DelegatingConnection.java:334)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at ru.bitel.bgbilling.server.util.PoolGuardConnectionWrapper.commit(PoolGuardConnectionWrapper.java:73)
04-01/01:20:00 ERROR [pool-2-thread-1] LoggingPrintStream - at bitel.billing.server.contract.bean.LimitManager.lowLimit(LimitManager.java:688)

Вручную нормально отработал.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02 апр 2014, 13:06 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
Проверим. Возможно ошибка.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 апр 2014, 15:32 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Здравствуйте!
Действительно, подобную ситуацию получилось воспроизвести. Будем разбираться и исправлять.

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03 апр 2014, 17:06 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Исправлено для всех текущих версий. Ожидайте в ближайшем обновлении.

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 дек 2016, 13:52 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
Добрый и с наступающим друзья :)
Код:
Method Invocation chargeService.chargeUpdate : at Line: 137 : in file: Акция "Благодарность за доверие" : chargeService .chargeUpdate ( ch )

Target exception: ru.bitel.bgbilling.common.BGException: java.sql.SQLException: Can't call commit when autocommit=true

Код:
Информация о версии:

  Клиент: вер. 6.2.848 / 14.12.2016 14:30:47
    os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_45
  Сервер: вер. 6.2.1145 / 30.11.2016 17:54:18
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_111


вручную если запускать, отрабатывает, по планировщику ошибка. BGBS скрипт

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 дек 2016, 13:58 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
Да, кстати, тоже натыкался на такую ошибку, только при вызове PaymentService из дин.кода через планировщик. При ручном запуске - всё ОК.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 дек 2016, 14:05 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Здравствуйте. Покажите конфигурацию задачи.

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 дек 2016, 14:09 
Не в сети
Клиент

Зарегистрирован: 09 фев 2011, 15:28
Сообщения: 1092
Карма: 135
Как обычно

type=1
tids=5


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 дек 2016, 14:13 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2010, 16:12
Сообщения: 941
Откуда: Уфа
Карма: 124
Попробуйте указать в конфигурации задачи опцию
Код:
autocommit=false

_________________
С уважением, Гареев Артур. Вежливый разработчик ООО "Бител".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 30 дек 2016, 14:14 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
у меня
tids=12
переделал на
tids=12
autocommit=false

посмотрим

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 08 янв 2017, 13:56 
Не в сети

Зарегистрирован: 05 окт 2007, 13:36
Сообщения: 1073
Карма: 46
с autocommit=false все работает

_________________
интеграция биллинга с 1с http://bgbilling-1c.ru/


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.107s | 46 Queries | GZIP : On ]