0

Grails2.1.1アプリケーションをcloudfoundry.comにデプロイしようとしています。私のローカルコンピューターでは、アプリケーションは問題なく実行されます。BuildConfig.groovyからQuartzプラグインの依存関係を削除すると、cloudfoundryでアプリケーションを正常に起動できます。

依存:

compile ":quartz:1.0-RC5"

grails cf-logsは、次のエラーを出力します。

Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: PermGen space

以下は私の仕事を参照してください:

package de.tum.wi.fm.game
import org.quartz.JobExecutionContext

class StartGameJob {
    def execute(JobExecutionContext context) {
        def gameRoundId = context.mergedJobDataMap.get('gameRoundId')

        if(gameRoundId) {
            GameRound gameRound = GameRound.get(gameRoundId)
            if(gameRound) {
                Game game = gameRound?.game
                game.currentGameRound = gameRound
                game.save(flush: true)
            }
        }
    }
}

トリガーはサービスに配置されます。

def jobParams = [gameRoundId:gameRound.id]
Date gameRoundEndDate = gameRound.endDate.toDate()
ChangeRoundJob.schedule(gameRoundEndDate, jobParams)
4

2 に答える 2

0

アプリケーションにより多くのメモリを割り当ててみましたか?これはVMCを使用して行うことができます。

vmc scale [application name]

プロンプトに従ってください。VMCは、割り当てるメモリの量を尋ねる必要があります。

于 2013-02-02T19:54:42.843 に答える
0

OutOfMemoryError例外は、JVMに十分なメモリが割り当てられていないと判断します。cloudfoundryインスタンスのメモリを増やし、その結果、JVMのメモリを増やす必要があります。

アプリケーションをデプロイするときは、次のコマンドを実行してみてください。

grails -Dgrails.env=production cf-push --memory=2048 --no-start
grails -Dgrails.env=production cf-env-add JAVA_OPTS -Xmx1024m -XX:MaxPermSize=512m
grails -Dgrails.env=production cf-start

最初のコマンドは、アプリケーションをcloudfoundryインスタンスにプッシュ(デプロイ)し、起動しません。

2つ目は、JVM環境変数、十分なメモリ設定を設定します。

3番目のコマンドはアプリケーションを起動します。

于 2013-02-06T09:47:54.577 に答える