0

Liferayポータルを停止していましたが、数秒後にデータベースを停止し(db2静止、つまり接続が閉じられている)、Liferayの実行が正しく停止しなかったようです。

その後、データベースとliferayを再起動しましたが、ポータルが機能しなくなりました。ブラウザに次のメッセージが表示されます。

HTTP Status 500 - 
type Exception report 
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
  javax.servlet.ServletException: Servlet execution threw an exception
    com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
...
root cause
  java.lang.NoSuchMethodError: com.liferay.portal.util.PortalUtil.getCDNHostHttp()Ljava/lang/String;
    com.liferay.portal.events.ServicePreActionExt.servicePre(ServicePreActionExt.java:937)

ログを調べたところ、次のメッセージが見つかりました(編集されています)。

SEVERE: Error waiting for multi-thread deployment of directories to completehostConfig.deployWar=Deploying web application archive {0}
  java.lang.InterruptedException
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1000)

WARN  [DefaultConnectionTester:203] SQL State '08001' of Exception which occurred during a Connection test (fallback DatabaseMetaData test) implies that the database is invalid, and the pool should refill itself with fresh Connections.
 com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: [jcc][t4][2030][11211][3.63.75] A communication error occurred during operations on the connection's underlying socket, socket input stream, or socket output stream.  Error location: Reply.fill() - insufficient data (-1).  Message: Insufficient data. ERRORCODE=-4499, SQLSTATE=08001
    at com.ibm.db2.jcc.am.fd.a(fd.java:321)
WARN  [DefaultConnectionTester:136] SQL State '08001' of Exception tested by statusOnException() implies that the database is invalid, and the pool should refill itself with fresh Connections.
WARN  [C3P0PooledConnectionPool:708] A ConnectionTest has failed, reporting that all previously acquired Connections are likely invalid. The pool will be reset.
WARN  [NewPooledConnection:486] [c3p0] A PooledConnection that has already signalled a Connection error is still in use!
WARN  [NewPooledConnection:487] [c3p0] Another error has occurred [ com.ibm.db2.jcc.am.SqlNonTransientConnectionException: [jcc][t4][10335][10366][3.63.75] Invalid operation: Connection is closed. ERRORCODE=-4470, SQLSTATE=08003 ] which will not be reported to listeners!
 com.ibm.db2.jcc.am.SqlNonTransientConnectionException: [jcc][t4][10335][10366][3.63.75] Invalid operation: Connection is closed. ERRORCODE=-4470, SQLSTATE=08003
WARN  [BasicResourcePool:1841] com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@4fad5112 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (3). Last acquisition attempt exception:
 com.ibm.db2.jcc.am.SqlNonTransientConnectionException: DB2 SQL Error: SQLCODE=-20157, SQLSTATE=08004, SQLERRMC=FUT5MAN;QUIESCE DATABASE;;, DRIVER=3.63.75
ERROR [PortalJobStore:109] MisfireHandler: Error handling misfires: Unexpected runtime exception: null
 org.quartz.JobPersistenceException: Unexpected runtime exception: null [See nested exception: java.lang.reflect.UndeclaredThrowableException]
Caused by: java.lang.reflect.UndeclaredThrowableException
    at $Proxy279.prepareStatement(Unknown Source)
    at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.countMisfiredTriggersInState(StdJDBCDelegate.java:413)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedMethodAccessor65.invoke(Unknown Source)
Caused by: java.sql.SQLException: Connections could not be acquired from the underlying database!
    at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
Caused by: com.mchange.v2.resourcepool.CannotAcquireResourceException: A ResourcePool could not acquire a resource from its primary factory or source.
    at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1319)

現在、Liferayのインストールを開始することはほとんど不可能であることがわかりました。ただし、データベース(完全バックアップを作成しました)とluceneのデータディレクトリがあります。これら2つの機能を使用してLiferayインストールを再作成するにはどうすればよいですか?このデータの一部を新規インストールで回復したいのですが、その方法はありません。

4

2 に答える 2

1

これは最善の解決策ではありませんが、Liferayに新しいデータベースをインストールしました。構成したら、もう一方を使用するためにデータベース構成を変更します。おそらく、これはROOTの展開に問題がありましたが、これは非常に奇妙です。Luceneとデータベースからすべてのデータを回復できました。

于 2012-05-28T21:43:26.937 に答える
0

データベースはまだ静止しており、LiferayユーザーにはQUIESCE_CONNECT権限がありません。データベースの静止を解除し、Liferayを再起動します。

DB2インスタンス所有者の使用(Windowsを使用している場合は、管理者):

db2 connect to DBNAME
db2 unquiesce database 
db2 connect reset

よろしく。

于 2012-05-28T00:09:50.357 に答える