私が投稿したものとまったく同じタイトルの質問が他にもあることは知っていますが、それぞれが参照しているクエリまたは手順に非常に固有のものです.
ここで大学の Blackboard Learn システムを管理しており、データベースに直接アクセスできます。要するに、システムの頭痛の種を引き起こしているストアド プロシージャがあります。システムへの変更がコミットされると、エラーがバックエンドのログにスローされることがbbgs_cc_setStmtStatus
あります。The current transaction cannot be committed and cannot support operations that write to the log file. Roll back the transaction.
これは SP のコードですが、Blackboard がアプリケーションのテーブルにデータを入力して作成するときにインストールされる "機器" の一部であるため、私は書きませんでした。
USE [BBLEARN]
GO
/****** Object: StoredProcedure [dbo].[bbgs_cc_setStmtStatus] Script Date: 09/27/2013 09:19:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[bbgs_cc_setStmtStatus](
@registryKey nvarchar(255),
@registryVal nvarchar(255),
@registryDesc varchar(255),
@overwrite BIT
)
AS
BEGIN
DECLARE @message varchar(200);
IF (0 < (SELECT count(*) FROM bbgs_cc_stmt_status WHERE registry_key = @registryKey) ) BEGIN
IF( @overwrite=1 ) BEGIN
UPDATE bbgs_cc_stmt_status SET
registry_value = @registryVal,
description = @registryDesc,
dtmodified = getDate()
WHERE registry_key = @registryKey;
END
END
ELSE BEGIN
INSERT INTO bbgs_cc_stmt_status
(registry_key, registry_value, description) VALUES
(@registryKey, @registryVal, @registryDesc);
END
SET @message = 'bbgs_cc_setStmtStatus: Saved registry key [' + @registryKey + '] as status [' + @registryVal + '].';
EXEC dbo.bbgs_cc_log @message, 'INFORMATIONAL';
END
Blackboard 固有のサポートは期待していませんが、SQL Server 2008 に関する限り、これを引き起こしているシステム設定があるかどうかを確認できるものがあるかどうかを知りたいです。Blackboard でチケットを開いていますが、まだ何も連絡がありません。
ここに私がチェックしたいくつかのことがあります:
tempdb システム データベース:
templog の初期サイズを 100MB に設定し、100MB ずつ自動拡張して、これが問題の原因であるかどうかを確認しました。役に立たなかったようです。実際の tempdb は 4GB から始まり、auto は必要になるたびに 1 ギガずつ増加します。tempdb で使用可能なスペースが tempdb の実際のサイズの 95 ~ 985 であることは正常ですか? たとえば、現在 tempdb のサイズは 12388.00 MB で、使用可能なスペースは 12286.37 MB です。
BBLEARN
また、自動拡張の最大値に達したため、メイン テーブルのログ ファイルの拡張が停止していました。サイズを大きくするために、初期サイズを 3GB に設定しました。