質問

SQL Server 200 Java 1.4 JBoss 3

こんにちは、例外メッセージを取得しています「マネージドトランザクション中に自動委員会を設定できません」

コードは以下にあります

    try {
                try {
                    connection = getConnection();
                } catch (Exception e) {
                    throw new ConnectionException(e.getMessage());
                }
                for(int i=0;i<recordIds.size();i++)
                {
                    String currentRecordId=(String)recordIds.get(i);
                    try
                    {
                    //exception on this line    connection.setAutoCommit(false);
                        preparedStatement = connection.prepareStatement(getSQL("PurgeRecordInDumpData"));  
                        preparedStatement.setLong(1,Long.parseLong(currentRecordId));
                        int numberOfUpdates=preparedStatement.executeUpdate();
                        if(numberOfUpdates!=1)
                        {
                            throw new Exception("Record with record id "+currentRecordId +"could not be purged.");
                        }
                        preparedStatement.close();
                        connection.commit();
                        listOfPurgedRecords.add(currentRecordId);
                    }
                    catch(Exception e)
                    {
                        connection.rollback();
                    }
                }
                return listOfPurgedRecords;

            }

この例外の原因は何ですか、そしてそれはどういう意味ですか?

役に立ちましたか?

解決

エラーが明確で、管理されたトランザクション中に自動委員会を設定することはできません。デフォルトであるため、これをfalseに設定する必要さえありません。これは、AutoCommitを有効にするために使用します。

J2EEとEJBを使用しているかどうかはわかりません。あなたがいる場合、AutoCommitを有効にする場合は、設定をBean Managed Transaction(BMT)に変更できます。これにより、この設定を変更できます。

ただし、コードでそれを使用する方法は、それをfalseに設定する必要はありません。すべてがトランザクションで行われ、コミットまたはロールバックでそれらを制御します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top