2017-10-20 11 views
1

ec2インスタンスのディスク領域が不足するまでWSO2 APIマネージャー2.0.0インスタンスが正常に動作していました。ディスクが消去され、APIマネージャが再起動すると、エラーが連続的にスローされています。アクセストークンを作成しますが、永続化/検証はできません。WSO2 APIマネージャーが不十分なディスクスペースのために失敗し、再起動後に機能しない

エラーの詳細:

TID: [-1234] [] [2017-10-20 09:43:14,684] INFO {org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO} - Thread pool size for session persistent consumer : 100 {org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO} 
TID: [-1] [] [2017-10-20 09:43:15,495] ERROR {org.wso2.carbon.identity.oauth2.dao.TokenPersistenceTask} - Error occurred while persisting access token :b4f68332-4359-3718-a553-3d908618b1c6 {org.wso2.carbon.identity.oauth2.dao.TokenPersistenceTask} 
org.wso2.carbon.identity.oauth2.IdentityOAuth2Exception: Error when storing the access token for consumer key : _hWq2BEkf1kB2RFSzugOzF04VRsa 
    at org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO.storeAccessToken(TokenMgtDAO.java:291) 
    at org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO.persistAccessToken(TokenMgtDAO.java:343) 
    at org.wso2.carbon.identity.oauth2.dao.TokenPersistenceTask.run(TokenPersistenceTask.java:52) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:748) 
Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.RuntimeException: rowCount expected 663 got 665 IDN_OAUTH2_ACCESS_TOKEN.PRIMARY_KEY_F"; SQL statement: 
INSERT INTO IDN_OAUTH2_ACCESS_TOKEN (ACCESS_TOKEN, REFRESH_TOKEN, CONSUMER_KEY_ID, AUTHZ_USER, TENANT_ID, USER_DOMAIN, TIME_CREATED, REFRESH_TOKEN_TIME_CREATED, VALIDITY_PERIOD, REFRESH_TOKEN_VALIDITY_PERIOD, TOKEN_SCOPE_HASH, TOKEN_STATE, USER_TYPE, TOKEN_ID, GRANT_TYPE, SUBJECT_IDENTIFIER) SELECT ?,?,ID,?,?,?,?,?,?,?,?,?,?,?,?,? FROM IDN_OAUTH_CONSUMER_APPS WHERE CONSUMER_KEY=? [50000-140] 
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:327) 
    at org.h2.message.DbException.get(DbException.java:156) 
    at org.h2.message.DbException.convert(DbException.java:279) 
    at org.h2.table.RegularTable.addRow(RegularTable.java:134) 
    at org.h2.command.dml.Insert.insertRows(Insert.java:148) 
    at org.h2.command.dml.Insert.update(Insert.java:82) 
    at org.h2.command.CommandContainer.update(CommandContainer.java:70) 
    at org.h2.command.Command.executeUpdate(Command.java:199) 
    at org.h2.jdbc.JdbcPreparedStatement.execute(JdbcPreparedStatement.java:179) 
    at org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO.storeAccessToken(TokenMgtDAO.java:269) 
    ... 5 more 
Caused by: java.lang.RuntimeException: rowCount expected 663 got 665 IDN_OAUTH2_ACCESS_TOKEN.PRIMARY_KEY_F 
    at org.h2.message.DbException.throwInternalError(DbException.java:226) 
    at org.h2.table.RegularTable.checkRowCount(RegularTable.java:144) 
    at org.h2.table.RegularTable.addRow(RegularTable.java:117) 
    ... 11 more 
TID: [-1] [] [2017-10-20 09:43:16,236] INFO {org.wso2.carbon.event.processor.manager.core.internal.CarbonEventManagementService} - Starting polling event receivers {org.wso2.carbon.event.processor.manager.core.internal.CarbonEventManagementService} 
+1

[もっと速い回答を得るために、どのような状況で「緊急」や他の類似のフレーズを追加することができますか?](// meta.stackoverflow.com/q/326569) - 要約は、ボランティアに対処する理想的な方法ではなく、おそらく回答を得ることに逆効果があります。これをあなたの質問に追加しないでください。 – halfer

答えて

0

あなたH2データベースが破損しているように見えます。 H2データベースを消去することでこれを回復できますが、データは失われます。

rm -r <APIM_HOME>/repository/database/* 

は再度H2データベースを作成します-Dsetup

./wso2server.sh -Dsetup 

これでサーバーを起動します。

WSO2の推奨は、この正確な理由(すなわち、H2データベースの破壊可能な性質)のためにH2を生産中に使用しないことです。

+0

答えをありがとう。それを試す前に、私はデータを回復するための解決策を望んでいました。 – RSN

+0

データベースとバックアップデータに接続しようとすることができます。 http://www.h2database.com/html/quickstart.html#h2_console – Bee

関連する問題