Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> jpa - hibernate - MySQL отваливается, соединение через какое-то время 
V
    Опции темы
Vasay
Дата 25.9.2007, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Доброго всем времени.

Продолжаю разбираться с JPA.

Наткнулся на такую проблему:
Деплою приложение - все ок.
Проходит какое-то время - начинает выскакивать ошибка:
Код

javax.persistence.PersistenceException: org.hibernate.TransactionException: JDBC begin failed: 


порылся по инету, ничего толком не нашел :(

Понимаю, что пул отваливается по таймауту.

В логе сервера:
Код

Servlet.service() for servlet useradd threw exception
javax.persistence.PersistenceException: org.hibernate.TransactionException: JDBC begin failed: 
    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
    at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:41)
    at useradd.processRequest(useradd.java:71)
    at useradd.doGet(useradd.java:123)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
    at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
    at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
    at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
    at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
    at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
    at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
    at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)
Caused by: org.hibernate.TransactionException: JDBC begin failed: 
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:68)
    at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
    at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:38)
    ... 28 more
Caused by: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.io.IOException
MESSAGE: Соединение сброшено другой стороной

STACKTRACE:

java.io.IOException: Соединение сброшено другой стороной
    at sun.nio.ch.FileDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:29)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:104)
    at sun.nio.ch.IOUtil.write(IOUtil.java:75)
    at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)
    at com.sun.enterprise.server.ss.provider.ASOutputStream.write(ASOutputStream.java:138)
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2739)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2650)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1581)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:2998)
    at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:4959)
    at com.sun.gjc.spi.ConnectionHolder.setAutoCommit(ConnectionHolder.java:538)
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:63)
    at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
    at org.hibernate.ejb.TransactionImpl.begin(TransactionImpl.java:38)
    at useradd.processRequest(useradd.java:71)
    at useradd.doGet(useradd.java:123)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:397)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:278)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:179)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:566)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:536)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
    at com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(ProcessorTask.java:667)
    at com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked(ProcessorTask.java:574)
    at com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(ProcessorTask.java:844)
    at com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask(ReadTask.java:287)
    at com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java:212)
    at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
    at com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread.java:75)


** END NESTED EXCEPTION **



Last packet sent to the server was 0 ms ago.
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2757)
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2650)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1581)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1695)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:2998)
    at com.mysql.jdbc.Connection.setAutoCommit(Connection.java:4959)
    at com.sun.gjc.spi.ConnectionHolder.setAutoCommit(ConnectionHolder.java:538)
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:63)
    ... 30 more


71 строчка в useradd - em.getTransaction().begin(); 
где em -  экзэмпляр EntityManager

Мой mysqlPool.sun-resource:
Код

<?xml version="1.0" encoding="UTF-8"?>
<resources>
  <jdbc-connection-pool allow-non-component-callers="false" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" max-pool-size="32" max-wait-time-in-millis="60000" name="mysqlPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" steady-pool-size="8">
    <property name="databaseName" value="vasay"/>
    <property name="serverName" value="***.***.***.***"/>
    <property name="portNumber" value=""/>
    <property name="User" value="***"/>
    <property name="Password" value="***"/>
    <property name="useUnicode" value="true"/>
    <property name="characterEncoding" value="UTF-8"/>
  </jdbc-connection-pool>
</resources>




Файл создавался NETBeans, и я не знаю что такое: idle-timeout-in-seconds="300"  и max-wait-time-in-millis="60000", но, чувствую, что это имеет отношение к проблеме...



--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
tux
Дата 25.9.2007, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Проблема известная, заключается в том, что по таймауту сервер MySQL отваливает соединение, не извещая об этом клиента. С помощью idle-timeout-in-seconds и max-wait-time-in-millis это не настраивается. И насколько я знаю вообще никак не настраивается. Решение - использование пула, который умеет мониторить состояние соединения, посылая периодически запросы к серверу. Например, Apache DBCP можно использовать.

Добавлено через 9 минут и 42 секунды
Вероятно еще добавление autoReconnect=true в JDBC URL может помочь, но насколько я помню работает такая опция не всегда.
PM MAIL Skype GTalk Jabber YIM   Вверх
Vasay
Дата 25.9.2007, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Цитата(tux @ 25.9.2007,  01:08)
Проблема известная, заключается в том, что по таймауту сервер MySQL отваливает соединение, не извещая об этом клиента. С помощью idle-timeout-in-seconds и max-wait-time-in-millis это не настраивается. И насколько я знаю вообще никак не настраивается. Решение - использование пула, который умеет мониторить состояние соединения, посылая периодически запросы к серверу. Например, Apache DBCP можно использовать.

Добавлено @ 01:18
Вероятно еще добавление autoReconnect=true в JDBC URL может помочь, но насколько я помню работает такая опция не всегда.

Спасибо за информацию.

Правда, у меня один проект с этим пулом и MySQL (правда без JPA и Hibernate) уже 4 месяца UP-time,  похоже дело в настройках...

Насчет autoReconnect=true, я думаю лучше не в юрл, а в mysqlPool.sun-resource добавить <property name="autoReconnect" value="true"/>?





--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
tux
Дата 25.9.2007, 06:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(Vasay @  25.9.2007,  02:16 Найти цитируемый пост)
Правда, у меня один проект с этим пулом и MySQL (правда без JPA и Hibernate) уже 4 месяца UP-time,  похоже дело в настройках...

Нет, дело скорее всего в пуле Hibernate, у него есть свой встроенный, который используется по умолчанию. Отключить его нельзя, только что-то взамен использовать.
PM MAIL Skype GTalk Jabber YIM   Вверх
Vasay
Дата 25.9.2007, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Цитата(tux @ 25.9.2007,  06:03)
Цитата(Vasay @  25.9.2007,  02:16 Найти цитируемый пост)
Правда, у меня один проект с этим пулом и MySQL (правда без JPA и Hibernate) уже 4 месяца UP-time,  похоже дело в настройках...

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

Похоже, я чего-то не понимаю.

Я создаю пул соединений на сервере (SUN Java App Server). Создаю JDBC Resources для этого пула (допустим, его имя "_MySQLRes").

В приложении без Hibernate и Jpa я использую:
Код

DataSource ds = (DataSource)ctx.lookup("jdbc/_MySQLRes");

Connection conn = ds.getConnection();

И все ОК. 

При использовании JPA Hibernate, я создаю persistence.xml

Код

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="JPAtestPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>_MySQLRes</jta-data-source>
    <properties>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
  </persistence-unit>
</persistence>


И часа через 3 вылетает вышеуказанная ошибка. При чем тут пул Hibernate?  smile 



--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Vasay
Дата 27.9.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Создал пул с использованием DBCP - все равно вылетает!!! 

SOS !!! не понимаю, что за бред....

Хотя, может дело в том, что отлаживаю я на локальном сервере (чтоб лишний раз не мучать  SJAS (Sun java app server), а то когда дебагишь на удаленном, он иногда виснет), а бд у меня на удаленном...  т.е. получается что бд вобще не может ничего послать SJAS не может, ибо у меня NAT???


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
tux
Дата 27.9.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Собственно, я сначала не заметил, что JNDI используется. Дело очевидно все-таки в пуле, но том, который используется на сервере приложений. Причина та, что я уже описывал. Посмотри, пожалуйста в настройках источника данных сервера, можно ли там задать возможность периодического опроса соединения. Это должны быть два параметра - текст запроса, который будет посылаться через соединение для поддержки его в актуальном состоянии (например, "select 1") и интервал времени, через которое пул будет это делать. Этот интервал должен быть меньше того времени, через которое сервер отваливает соединения. К сожалению Sun AS у меня нет, посмотреть не могу. В общем такое решение должно помочь.
PM MAIL Skype GTalk Jabber YIM   Вверх
Vasay
Дата 29.9.2007, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Вобщем, все вроде ОК

Похоже проблема была в том, что app server находился во внутренней сети (не имел своего собственного ip-a в интернете), а сервер с БД во внешней (internet).  Поставил app server на тотже сервер, где и БД,  коннект больше не рвет.


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Vasay
Дата 30.9.2007, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Опять отвалился :(

Может, кто-нибудь приведет пример рабочих настроек JPA - MySQL (не обязательно hibernate)?

Цитата

Посмотри, пожалуйста в настройках источника данных сервера, можно ли там задать возможность периодического опроса соединения. Это должны быть два параметра - текст запроса, который будет посылаться через соединение для поддержки его в актуальном состоянии (например, "select 1") и интервал времени, через которое пул будет это делать. Этот интервал должен быть меньше того времени, через которое сервер отваливает соединения.


Увы, такого не нашел :(



--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
tux
Дата 30.9.2007, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(Vasay @  30.9.2007,  00:14 Найти цитируемый пост)
Увы, такого не нашел :(

Зато я нашел. smile Судя вот по этому - http://docs.sun.com/app/docs/doc/819-4733/ablih?a=view, у пула соединений SAS есть такие параметры:
Connection Validation. Select the Required checkbox to enable connection validation. 
Validation Method. The application server can validate database connections in three ways: auto-commit, metadata, and table. 
  • auto-commit and metadata - The application server validates a connection by calling the con.getAutoCommit() and con.getMetaData() methods. However, because many JDBC drivers cache the results of these calls, they do not always provide reliable validations. Check with the driver vendor to determine whether these calls are cached or not.
  • table - The application queries a database table that are specified. The table must exist and be accessible, but it doesn't require any rows. Do not use an existing table that has a large number of rows or a table that is already frequently accessed.
Table Name. If you selected table from the Validation Method combo box, then specify the name of the database table here. 
On Any Failure. If you select the checkbox labelled Close All Connections, if a single connection fails, then the application server closes all connections in the pool and then reestablish them. If you do not select the checkbox, then individual connections are reestablished only when they are used.

Сделай следующее: включи валидацию, поставь метод валидации table и задай имя какой-нибудь существующей таблицы с небольшим количеством записей. Собственно, тогда и получится то, что я предлагал.
PM MAIL Skype GTalk Jabber YIM   Вверх
Vasay
Дата 1.10.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Уже больше суток работает!

Спасибо tux!!!

Еще +1, за то что не поленился, посмотрел доки SJAS и ткнул меня носом в нужное место!


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
diablero
Дата 6.10.2007, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



А мое исключение не из той же оперы? Вываливаеться если открыть страницу сайта и через пол часа перейти в нем по какой-нибудь ссылке.
Код

java.lang.IllegalStateException: Transaction not active
    org.hibernate.ejb.TransactionImpl.rollback(TransactionImpl.java:82)
    ru.selfexpression.servlets.ControllerServlet.service(ControllerServlet.java:81)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    ru.selfexpression.servlets.GZIPFilter.doFilter(GZIPFilter.java:18)



--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
Vasay
Дата 6.10.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



а можешь код привести, где с транзакциями работаешь?


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
diablero
Дата 6.10.2007, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



Код

EntityTransaction tx = null;
        try {
            tx = entityManager.getTransaction();
            tx.begin();
             
            //......

            tx.commit();
        } catch (Exception e) {
            if (tx != null) {
                tx.rollback();
            }
            //logger.error(err.getMessage(), err);
            throw new ServletException(err);
        }



--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
Vasay
Дата 6.10.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Странно...

Он у тебя сыпится на rollback....
Судя по коду entityManager жив. 
У тебя работа entityManager как построена? 


Вполне возможно проблема тоже связана с MySQL. Если раз в 10 мин кликать на страницу, то через полчаса еще все работать будет?



--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1008 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.