0

私は次のプロジェクトに取り組んでおり、ランタイムの問題に遭遇しました。

http://github.com/dmcquillan314/YouthMinistryHibernate

このプロジェクトを実行する手順は README.md ファイルにありますが、現時点では少し乱雑に見えます。生のバージョンを表示するだけで、読めるはずです。これらの手順が完了したら、環境を実行する必要があります。

この問題は、次の場所にある管理ページにあります。

http://localhost:portno/admin

すべてのアカウントは現在、テスト目的で管理者の役割で追加されています。

問題を再現する手順については、次を参照してください。

  1. ユーザー アカウントにサインアップすると、ROLE_ADMIN および ROLE_USER ユーザー ロールが自動的に取得されます。

  2. /admin URL に移動します。

  3. グループ マネージャーを使用していくつかのグループを追加します。

  4. テキスト エントリを追加しようとすると、フリーズするはずです。ブレークポイントを設定しても、トラフィックがまったく表示されないことに気付きました。これは奇妙なことです。

  5. この「フリーズ」をすぐに再現できない場合は、さまざまなアセットの作成と更新を試みてください。特に、ページ コンテンツとイベントのようです。今のところ、別のコントローラーに移動するまで、すべてのコントローラーは管理コントローラー クラスにあります。

DB接続プールのセッションタイムアウトや休止状態の設定を変更するなど、すでにいくつかのことを試して修正しました。

また、アプリケーションがフリーズする場所を確認するためにいくつかのブレークポイントを設定しようとしましたが、エラーが発生したときに設定した AdminController クラスのブレークポイントに到達しないようです。

ログはやや役に立たないだけでなく、失敗したインスタンスの最後の数行を次に示します。

16:32:19.061 [tomcat-http--13] DEBUG o.s.security.web.FilterChainProxy - /admin/createtextentry reached end of additional filter chain; proceeding with original chain
    16:32:19.061 [tomcat-http--13] DEBUG o.s.web.servlet.DispatcherServlet - DispatcherServlet with name 'appServlet' processing POST request for [/YouthMinistryHibernate/admin/createtextentry]
    16:32:19.061 [tomcat-http--13] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Looking up handler method for path /admin/createtextentry
    16:32:19.062 [tomcat-http--13] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Returning handler method [public java.lang.String com.youthministry.controller.AdminController.handleCreateTextEntry(com.youthministry.domain.TextEntry,org.springframework.validation.BindingResult,org.springframework.ui.Model)]
    16:32:19.062 [tomcat-http--13] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Returning cached instance of singleton bean 'adminController'
    16:32:19.063 [tomcat-http--13] DEBUG o.s.b.f.s.DefaultListableBeanFactory - Returning cached instance of singleton bean 'txManager'
    16:32:19.063 [tomcat-http--13] DEBUG o.s.o.h.HibernateTransactionManager - Creating new transaction with name [com.youthministry.service.impl.GroupServiceImpl.getGroupById]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT,readOnly; ''
    16:32:19.063 [tomcat-http--13] DEBUG o.s.o.h.HibernateTransactionManager - Opened new Session [SessionImpl(PersistenceContext[entityKeys=[],collectionKeys=[]];ActionQueue[insertions=[] updates=[] deletions=[] collectionCreations=[] collectionRemovals=[] collectionUpdates=[] unresolvedInsertDependencies=UnresolvedEntityInsertActions[]])] for Hibernate transaction
    16:32:19.063 [tomcat-http--13] DEBUG o.s.o.h.HibernateTransactionManager - Preparing JDBC Connection of Hibernate Session [SessionImpl(PersistenceContext[entityKeys=[],collectionKeys=[]];ActionQueue[insertions=[] updates=[] deletions=[] collectionCreations=[] collectionRemovals=[] collectionUpdates=[] unresolvedInsertDependencies=UnresolvedEntityInsertActions[]])]
    16:32:19.063 [tomcat-http--13] DEBUG o.s.jdbc.datasource.DataSourceUtils - Setting JDBC   Connection [org.hibernate.engine.jdbc.internal.proxy.ConnectionProxyHandler@2dd92714[valid=true]] read-only

これまでのところ、データベースを介したデッドロックではなく、上のサーバーログの最後の長いエントリとして示されているように、接続 ProxyHandler にアクセスしようとすると、春に DataSourceUtils のどこかでデッドロックになることがわかりました。

Spring 3.1、Hibernate 4.1、および DBCP を接続プールとして使用しています。

私はこの問題に1週間ほど苦労してきました。

4

1 に答える 1