VB2005 SQLServer Timeout

このQ&Aのポイント
  • 対象:VB2005とSQLServerのタイムアウト問題
  • 対処法:タイムアウト設定方法の検討
  • 結果:タイムアウト設定の変更で解決可能
回答を見る
  • ベストアンサー

VB2005 SQLServer Timeout

- プログラムの動作要件 WindowsServer2003 R2 Sp2 (X64) VS2005 VB.NET - 開発ツール、テクノロジ (製品/テクノロジ名、バージョン、エディション、サービスパック) VS2005 Vb.NET Version 8.0.50727.42 FrameworkVersion 2.0.50727 SP2 - ビジネス フェーズ (実装) ・SQLServer2005のバックアップ、リストア専用Toolの作成 Microsoft.SqlServer.Smo、Microsoft.SqlServer.ConnectionInfo, Microsoft.SqlServer.SqlEnum、Microsoft.SqlServer.SmoEnumを参照設定し、 SQL Server 2005の指定したデータベースをバックアップ、リストアを行うモジュールを作成しました。、 - 内容 大きなデータベースをバックアップしようとすると10分程度でタイムアウトしてしまいます。 ConnectionContext.ConnectTimeoutを設定してみましたが、変化がございません。 実行時のタイムアウト設定は、どのようにすれば、可能なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#259269
noname#259269
回答No.2

wkServer.ConnectionContext.StatementTimeout かも。

ninni_ichi
質問者

お礼

ありがとうございます。 とりあえず設定して動作確認は、行ったのですが、バックアップデータが本番データでなかなか許可が下りず、タイムアウトの確認ができていません。(30G程度の容量が必要なため) 10G程度でしたら問題なくバックアップ、リストアできていますので問題はないと思いますが、実際にタイムアウトしたデータでの確認がまだできていません。 動作自体は問題ないのでいったんクローズとさせていただきます。 ありがとうございました。

その他の回答 (1)

回答No.1

Connection の Timeout は接続する時のタイムアウト値。 実行するコマンドの Timeout はコマンドを実行している Command オブジェクトので設定。 ということまでは私も知っている話なのでお答えできます。 バックアップの実行に関してはお答えする知識がないのですが、やはりバックアップを実行する側のオブジェクトにタイムアウトの設定があるんじゃないでしょうかね。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10570&forum=7 http://nary.cocolog-nifty.com/blog/2009/12/sql-server-c081.html http://blog.livedoor.jp/seec/archives/996451.html

ninni_ichi
質問者

補足

すみません、コマンドオブジェクトは使用していないのです。 コードは以下のようにしています。 Try 'サーバへの接続情報を設定 Dim wkServer As New Server wkServer.ConnectionContext.ServerInstance = "localhost\SQLEXPRESS" wkServer.ConnectionContext.LoginSecure = True 'バックアップの動作を決める Dim wkBackup As New Backup wkBackup.Action = BackupActionType.Database 'バックアップ対象のデータベースを指定 wkBackup.Database = "Tset" '完全バックアップにする 'IncrementalプロパティをTrueにすると増分バックアップになる wkBackup.Incremental = False wkBackup.Initialize = True wkBackup.LogTruncation = BackupTruncateLogType.Truncate 'バックアップ先の指定 Dim backupFile As String backupFile = "c:\temp\test.bak" 'バックアップ装置の設定 'バックアップをファイルに出力する Dim Device As New BackupDeviceItem(backupFile, DeviceType.File) wkBackup.Devices.Add(Device) wkBackup.PercentCompleteNotification = 10 'バックアップの実行 wkBackup.SqlBackup(wkserver) MessageBox.Show("完了", "通知") Catch ex As Exception MessageBox.Show(ex.Message, "エラー") End Try プロパティを探したんですが、timeoutの設定が見あたらず困っています。

関連するQ&A

  • VBからSQLServer2005のデータベースを最適化するには?

    WindowsXP,VB6.0.SP6にて開発しております。 タイトルの通りですが、SQLServer2005のデータベースを最適化したいのです。 色々調べましたところ、ACCESSでの最適化は見つかるのですが、 SQLサーバーでのやり方が見つかりませんでした。 どうか、ご存知の方いらっしゃいましたら、 ご教授よろしくお願いしますm(_ _)m

  • VBからSQLServerへの接続について

    こんばんわ。 いまVB6.0とSQLServer8.0でプログラミングをしている者です。 rdoでVBからSQLServerへ接続したいのですが, 接続文字列の設定がわかりません。 ローカルにPersonal SQLServerを入れて, そこに接続しようとしています。 なお対象のデータベースはWINDOWSログインユーザ認証で ログインするよう作成しています。 このような場合, SEDRVER=(local);DATABASE=TEST;UID="WINDOWSのユーザID"; PWD="WINDOWSのパスワード"としたのですが, 「~(ユーザID)でログインできませんでした」 となってしまいます。 どうすればローカルのSQLServerにrdoでつなげることができるでしょうか? 教えてください。 よろしくお願いします。

  • ログインユーザーの追加について

     SQL Serverで、データベース"GRSdb"を作成しました。 Management Studioにてログインユーザーを追加しようと思い、新規ログインを作成しようとしましたが、下記のようなエラーメッセージが表示されました。  ログイン"uzuracch"の作成に失敗しました(MicroSoft.SqlServer.Smo) 追加情報  Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。 (MicroSoft.SqlServer.ConnectionInfo)  ユーザーにはこの操作を実行する権限がありません(MicroSoft SQL Server,エラー:15247) .このエラーに対する対処が分かりません。よろしくお願いします。 開発環境は、Windows7,VB2010PRO,SQLServer2008R2Expressです。

  • SQLServer2008のバックアップできない

    具体的にはSQL Server 2008 Expressのデータベースのバックアップで「パスが見つかりません・・」等のエラーメッセージが出てバックアップができないのです。 というのも、Windows Server 2008が来年1月にマイクロソフトのサポート終了になる事から これまでレンタルサーバーで使っていたWindows Server 2008のVPSからレンタルサーバーのプロバイダーの依頼もあり、Windows Server 2019にWEBコンテンツと共に連動していたSQL Server 2008 Expressのデータベース(SQL Server 2008 Expressのデータベース)もWindows Server 2019(SQL Server 2019 Expressのデータベース)に移行する事になり、Windows Server 2008のSQL Server 2008 Expressのデータベースのバックアップを取ろうとしたのですが「サーバー”*****”のバックアップに失敗しました。(Microsoft.SqlServer.SmoExtend)」というエラーメッセージの他に追加情報として 「System.data.SqlClient.SqlError:バックアップデバ:SQL2008_DB_Backup¥XXX(バックアップファイル名)を開けません。オペレーティングシステムエラー3(指定されたパスが見つかりません)Microsoft.SqlServer.Smo)」 というエラーメッセージが出てしまい、 SQL Server 2008 Expressのデータベースのバックアップが取れません。 どんな対処方法が考えられますでしょうか?

  • VB6でSQLServerへADO接続するとOPENがすごく遅いんです。

    お世話になってます。 今、VB6.0で作成したシステム(ADOでACCESS2000に接続)をSQLServerに移行しています。 しかしDBの初回OPEN時に5秒くらいかかってしまいます。 原因を探しているのですが、どうしても見つかりません。 誰かご存知の方がいらっしゃいましたら、ご教示お願いします。 開発環境は以下の通りです。 OS:WindowsXP SP2 開発言語:VB6.0 SP5 データベース:SQLServer2005 ADO:ADO2.5

  • SQLServer2000からSQLServer2005へのデータ移行

    SQLServer2000からSQLServer2005へのデータ移行方法 Microsoft SQL Server ManagementStadio Expressで SQLServer2000のバックアップファイルから、 ローカルの開発環境(SQL Server2005 Express)でデータベースを復元しようと試みましたところ、 復元が正常に出来ませんでした。 復元はエラーが発生せず完了しデータベースは作成されているのですが、 データベースを右クリックで削除やプロパティを見ることもできず、 どのようなテーブルが存在するのか中身の参照も追加も何もできない状態です。 http://qanda.rakuten.ne.jp/qa4183273.html 上記URLなどでSQL Server2000のバックアップから2005で復元しているような発言がされているので 可能だと思うのですが、何か特別な処理が必要なのでしょうか? ご存じのかた、教えていただけますようお願いいたします。

  • VB2013とSQLServer

    VB2013でプログラムを作成し、データベースは Expressに一緒にダウンロードされたSQLServerを 利用しています。 作成したEXEファイルなどはファイルサーバーに入っており 複数のクライアントPCで利用しています。 1台のPCで使用していると他のPCではデータベースをOPENできませんと言われて 2台同時に使用できません。 完全にプログラムを終了させないとメニューに戻っただけではだめでした。 (メニュー画面はフォームを呼ぶだけなのでデータベースは扱ってません) 簡単なプログラムなのでフォームの中のprivate sub 単位でOPEN~CLOSEはしてます。 EXPRESSは複数台で利用することはできないのでしょうか? ほかのPCをすべて終了させればできるのです。 なにか対処の方法をお解りの方がいらっしゃいましたらよろしくお願いいたします。

  • SQLServer2012の復元ができない

    いつも楽しく勉強させていただいております。 環境はSQLServer2012のExpressでOSはWindowsServer2008です。 Test1というデータベースのバックアップを取ってTest2という名前で復元しようとしましたが、なぜか失敗してしまいます。 どなたか原因を教えていただけませんか。 次の手順でバックアップを取り、復元をしています。 ○バックアップのフェーズ 1.データベースのバックアップのダイアログボックスを開く。 2.ソースにTest1、バックアップの種類に完全を指定する。 3.バックアップ先は以下のファイルに  C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Backup\Test1.bak 4.OKをクリックし、「データベース'Test1'のバックアップが正常に完了しました」を確認。 ○復元のフェーズ 5.データベースの復元のダイアログボックスを開く。 6.ソースはデバイスにする。 7.ファイル名に上記3.のファイル名を指定 8.転送先データベースはTest2とする。 9.OKをクリック(ここでエラーとなる)。 エラーメッセージは以下の通りです。 ------------------------------------------ データベース'Test2'の復元に失敗しました。(Microsoft.SqlServer.Mangement.RelationalEngineTasks) 追加情報: System.Data.SqlClient.SQLError:ファイル'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Test1.mdf'に上書きできません。 データベースTest1が使用中です。(Microsoft.SqlServer.SmoExtended) ------------------------------------------ メッセージの内容で引っかかるのはTest1.mdfに上書きできませんというところです。 上書きでなくTest2という新規データベースに書き込みたいのですが。 ためしにTest2というデータベースを作成しておいて「既存のデータベースに上書きする」をチェックしてやってみましたが、やはり失敗。 メッセージは上と同じです。 SQLServerを再起動して試してもやはり結果は同じです。 何が悪いのでしょう。

  • SQLServer7から2000へのDB移行について

    SQLServer7のデータベースを、別のサーバ機のSQLServer2000に移行したいと考えています。 データベースそのものはEnterpriseManagerのデータベースのバックアップ・復元にて移行できたのですが、移行先のサーバでODBCを設定すると、ログインID・パスワードで接続ができませんでした。 (「ユーザーの既定のデータベースを開けません」) masterとmsdbをバックアップ・復元しようとしましたが、バージョンが異なるというエラーで先に進めません。 新サーバ上にODBCで接続するために何をすればいいのか教えてもらえませんでしょうか。

  • SQLServer2005Expressでアタッチ出来ない

    いつも仕事に役立つ情報をありがとうございます。 表題の件ですが、PCの入れ替えに伴い 前PCのSQLServer2005Expressにて稼動していたDbを 移行しようとした際に、デタッチ/アタッチでやろうとしたんですが 下記エラーが発生してアタッチ出来ない事象が発生してしまいました。 同様のエラーを克服した経験をお持ちの方からのアドバイスを お願いします。 「エラーメッセージ」 ------------------------------ サーバー 'D869\SQLEXPRESS' のデータベースのアタッチに失敗しました。 (Microsoft.SqlServer.Express.Smo) Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。 (Microsoft.SqlServer.Express.ConnectionInfo) データベース "Asprova" を更新できませんでした。データベースが読み取り専用です。 (Microsoft SQL Server、エラー: 3906) ------------------------------

専門家に質問してみよう