次の方法で共有


VariableDispenser.Reset Method

GetVariables への呼び出しが失敗した場合に、読み取り専用ロック一覧および読み取り/書き込みロック一覧をクリアします。

名前空間: Microsoft.SqlServer.Dts.Runtime
アセンブリ: Microsoft.SqlServer.ManagedDTS (microsoft.sqlserver.manageddts.dll 内)

構文

'宣言
Public Sub Reset
public void Reset ()
public:
void Reset ()
public void Reset ()
public function Reset ()

解説

更新されたサンプル コード :2006 年 7 月 17 日

このメソッドを使用すると、GetVariables の呼び出しが失敗した後で読み取り専用ロック一覧と読み取り/書き込みロック一覧をクリアできます。GetVariables への呼び出しが失敗した場合、ロックの一覧はクリアされないため、GetVariables を再度呼び出すと同じ変数に対するロックが試みられます。同じ変数のロックを再試行する場合は、最初に Reset を呼び出さないで GetVariables を再度呼び出します。また、このメソッドを使用し、すべての要求された変数が利用可能になってから一度にロックできるようになるまで操作を破棄することで、一覧を解放することを選択できます。

また、GetVariables からの失敗を受信し、次に、完全に異なる関連付けられていない変数のセットをロックする場合に、この Reset メソッドが使用されます。Reset を呼び出してロックの一覧をクリアしてから、LockForRead メソッド、LockForWrite メソッド、LockOneForRead メソッド、および LockOneForWrite メソッドを使用してロックの一覧の内容を指定します。

使用例

次のコード例では、変数のコレクションをロックした後、ロックを解除する前にその変数コレクションがロックされているかどうかを確認します。ロックが失敗した場合は、Reset が呼び出されます。

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;

namespace Microsoft.SqlServer.SSIS.Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            Package pkg = new Package();
            Variables vars = null;
            VariableDispenser variableDispenser = pkg.VariableDispenser;
            variableDispenser.LockForRead("System::PackageName");
            variableDispenser.LockForRead("System::OfflineMode");
            variableDispenser.GetVariables(ref vars);           
            // Determine whether the variable collection is locked.
            Boolean isLocked = vars.Locked;

            // Verify the value of vars.Locked. If the lock failed,
            // call Reset.
            if (isLocked)
            {
                vars.Unlock();
            }
            else
            {
                variableDispenser.Reset();
            }
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
 
Namespace Microsoft.SqlServer.SSIS.Sample
    Class Program
        Shared  Sub Main(ByVal args() As String)
            Dim pkg As Package =  New Package() 
            Dim vars As Variables =  Nothing 
            Dim variableDispenser As VariableDispenser =  pkg.VariableDispenser 
            variableDispenser.LockForRead("System::PackageName")
            variableDispenser.LockForRead("System::OfflineMode")
            variableDispenser.GetVariables( vars)
            ' Determine whether the variable collection is locked.
            Dim isLocked As Boolean =  vars.Locked 
 
            ' Verify the value of vars.Locked. If the lock failed,
            ' call Reset.
            If isLocked = True Then
                vars.Unlock()
            Else 
                variableDispenser.Reset()
            End If
        End Sub
    End Class
End Namespace

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

VariableDispenser Class
VariableDispenser Members
Microsoft.SqlServer.Dts.Runtime Namespace

変更履歴

リリース

履歴

2006 年 7 月 17 日

変更内容 :
  • サンプル コードを変更して、読み取り専用システム変数の誤ったロックを削除しました。