memoQ serverのトラブルシューティング
このトピックには、memoQ serverに関する問題を解決するためのヒントが記載されています。
作業内容が正確にわかっていて、ここに記載されている内容がすべて明確でない場合は、システムを変更しないでください。
デプロイメントツールでmemoQ serverを起動しようとすると、Start memoQ serverをクリックした後にmemoQ serverがStoppedのまま残る場合があります。
この原因を調べるには:
- WindowsでEvent Viewerプログラムを開きます。Windowsキーを押して、eventと入力し、一致するもののリストでEvent Viewerをクリックします。このプログラムの起動には時間がかかる場合があります。
- Event Viewerで、Applications and Services Logsアイテムを展開し、memoQserverをクリックします。memoQ serverからのイベントは右側に表示されます。
- memoQserverより最後 (一番上) のエラーイベントをダブルクリックします。Event Propertiesウィンドウに次のエラーメッセージが表示されます:
これはほんの一例です
このエラーメッセージは、対処方法を確認するのに役立ちます。
memoQ serverサービスの開始に失敗する主な理由は2つあります:
- memoQ serverはアクティベーションされていません:サーバーコンピュータ上でmemoQ server activationプログラムを開き、システムのライセンスを確認します。詳細については、memoQ serverのアクティベーションと起動のトピックを参照してください。
- memoQ serverがSQL Serverにログオンできないか、またはmemoQ serverデータベースにアクセスできません:これは、SQL Serverが別のマシンで実行されていて、memoQ serverを代表するユーザーにSQL Serverまたはデータベース自体にアクセスするための十分な権限がない場合に発生します。この問題を解決するには、memoQ serverがSQL Serverにログオンできないまたは別のコンピュータでのSQL Serverデータベースの使用セクション (後述) を参照してください。
- memoQ serverは、別のアプリケーションによって使用されているTCPポートを使用しようとします:これは、memoQ serverをHTTPS接続を使用するように設定した場合や、アプリケーションプログラミングインターフェース (API) を設定した場合に発生する可能性があります。詳細については、このセクションの後の別のプロセスで使用されているネットワークポートセクションを参照してください。
WindowsイベントログにmemoQ serverがSQL Serverへのログオンに失敗したというメッセージが記録されている場合は、memoQ serverへのアクセスを許可するようにSQL Serverを構成する必要があります。より正確には、システム内のmemoQ serverを代表するユーザーアカウントへのアクセスを許可する必要があります。
SQL ServerがWindows-integratedまたはMixedの設定とともにインストールされていない場合は、SQL Serverインスタンスのインストールを繰り返す必要があります。SQL Serverの認証がWindows-integratedまたはMixedに設定されていることを確認してください。(memoQ serverがSQL Serverインスタンスを使用する唯一のアプリケーションである場合、Mixedを使用する理由はありません。)データベースファイルは削除されません。
この問題を解決するには、SQL Server Management Studioが必要です。インストールされていない場合は、次のWebサイトからダウンロードしてインストールします:https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
SQL Server Management Studioを使用して、memoQ serverサービスアカウントへのアクセス権を付与します。通常は仮想サービスアカウント (NT SERVICE\MemoQ server service) ですが、サービスプログラム内で別のアカウントを選択することもできます。今回は、サービスプログラムを開き (開始メニューでservices.mscと入力)、memoQ server serviceの名前を右クリックして、プロパティを選択します。Service PropertiesウィンドウでLog Onタブをクリックし、表示されたユーザー名をメモします。ユーザーのアクセスを許可するようにSQL Serverを構成する必要があります。
次のように、Microsoft SQL Server Management Studioでサービス・アカウントを設定します。
Loginsで、memoQ server serviceユーザーを追加し、データベース上でユーザーをdb_ownerにします。
sqlcmdコマンドラインを使用することもできます。詳細については、便利なSQLコマンドのトピックを参照してください。
SQL Serverの試用版または評価版はサポートされていません:このようなエディションを使用すると問題が発生することが知られています。
memoQ serverのデータベースを設定する場合は、SQL Serverでデータベースを作成および構成するための適切な権限が必要です。SQL ServerがmemoQ serverと同じコンピュータ上にある場合、これは問題ではありません。memoQ serverをインストールするには管理者アクセス権が必要であり、通常は同じコンピュータ上の管理者権限でSQL Serverにデータベースを設定することもできます。
ただし、SQL Serverを別のコンピュータにインストールする場合は、memoQ serverのインストーラがネットワーク経由でデータベースを設定できるように、手動で準備する必要があります。
memoQ serverコンピュータにmemoQ serverをインストールする前に、これを実行してください。
SQL Serverの権限を設定するには:
- SQL Serverを実行しているコンピュータ上で、memoQ serverコンピュータへのログオンに使用するものと同じ名前とパスワードを持つWindowsアカウントを作成または検索します。
同じドメイン内のコンピュータ?新規ユーザーは不要:2台のコンピュータが同じActive Directoryドメインのメンバーである場合は、この手順を省略できます:どちらのコンピュータも、中央ディレクトリデータベースからユーザー名とパスワードを取得します。
- このWindowsアカウントをSQL Serverのsysadminセキュリティロールのメンバーにする必要があります。SQL Serverを実行しているコンピュータで、SQL Management Studioを開きます (使用できない場合は、SQL Serverインストーラを使用してインストールします)。memoQ serverデータベースをホストするSQL Serverインスタンスに接続します。
- Object explorerで、セキュリティ、Loginsの順に展開します。Loginsのユーザリストで、Windowsアカウントの名前を右クリックし、ポップアップメニューからプロパティを選択します。Login Propertiesが右側に表示されます。
注意:ユーザーがLoginsに表示されていない場合は、Loginsを右クリックして、ポップアップメニューからNew Login…を選択します。New Loginウィンドウが開きます。ログイン名ボックスの横にある検索をクリックします。Select User or Groupウィンドウが開きます。Windowsアカウントの名前を入力し、検索をクリックします。ユーザー名に下線が表示されたら、OKをクリックして新規ログインダイアログに戻ります。
- Login propertiesまたは新規ログインウィンドウで、左側のServer Rolesカテゴリをクリックします。右側のサーバーロールのリストで、sysadminのチェックボックスをオンにします。
- OKをクリックすると、SQL Server Management Studioのメインウィンドウに戻ります。選択したWindowsアカウントは、SQL Serverのsysadminロールのメンバーになります。SQL Server Management Studioを閉じます。
- memoQ serverのインストール先コンピュータに戻ります。memoQ ServerセットアップウィザードのDatabase optionsページで、SQL ServerコンピュータのIPアドレスまたは名前を入力し、適切なインスタンス (Windowsアカウントメンバーをsysadminロールにしたインスタンス) を選択します。
必要な権限を手動で付与する方法については:便利なSQLコマンドのトピックを参照してください。
状況によって、memoQ serverが予期せず停止することがあります。memoQ Zrt.のサポートサービスに問い合わせることをお勧めします。memoq.com Webサイトの連絡先フォームを使用してください:https://www.memoq.com/contact-us
失敗すると、memoQ serverは自動的に再起動します (可能な場合):サービスが実行されていない場合は、このトピックの前述のmemoQサービスが開始されないのセクションを参照してください。
memoQ serverの最新ログファイルを必ず含めてください。ログファイルは、memoQ serverのデータフォルダ内のLogフォルダに常に格納されます。デフォルトでは、C:\ProgramData\MemoQ Server\Logフォルダに格納されます。最新のログファイルはServer.logです。ログファイルをzipファイルに圧縮すると、アップロードが高速になります。
memoQ serverのデータファイルの一部は、常にC:\ProgramData\MemoQ Serverフォルダ内に存在する必要があります。より多くのスペースが必要な場合は、残りの部分を別のドライブに移すことができます。
- リモートデスクトップまたはその他のリモート制御機能を使用して、管理者としてmemoQ serverコンピュータにログオンします。
- デプロイメントツールを実行し、memoQ serverサービスを停止します。
- memoQ serverのデータフォルダを新しい場所にコピーします (例:D:\NewFolder)。通常、memoQ serverのデータはC:\ProgramData\MemoQ Serverにあります。(古い場所からデータフォルダを削除しないでください。)
- メモ帳などのプレーンテキストエディタを使用します。(色を使用してXMLを表示できるエディタを使用します - 例:Notepad++。)C:\ProgramData\MemoQ ServerフォルダからConfiguration.xmlファイルを開きます。
- DataDirectory要素の内容を新しいフォルダのパスに変更します。
<DataDirectory>D:\NewFolder</DataDirectory>
- Configuration.xmlファイルを保存します。
- C:\ProgramData\MemoQ Serverフォルダ内で、次のフォルダを削除します:
- D:\NewFolderフォルダ内には、上記のフォルダのみを残します。それ以外のものはすべて削除してください。これらのものはC:\ProgramData\MemoQ Serverで保持する必要があります。そうしないとmemoQ serverを起動できません。
- デプロイメントツールで、memoQ serverサービスを再度開始します。
- memoQ serverのすべての機能が正しく動作することを確認します。
これで十分なスペースを解放できない場合は、SQLデータベースの移動も試行できます:データベースファイルを新しい場所にコピーし、SQL Server Management Studioまたはsqlcmdコマンドラインを使用して古いデータベースファイルを切り離し、新しいデータベースファイルを同じSQL Serverインスタンスにアタッチします。詳細については、便利なSQLコマンドのトピックを参照してください。
SQLデータベースの移動はリスクを伴います:重大なデータ損失を引き起こす可能性があります。自分が何をしているのかをよく理解していない限り、この方法は取らないでください。
これにはWindowsのコマンドラインが必要です。コマンドラインを開くには、Windowsキーを押して、cmdと入力し、Enterキーを押します。プロセスを停止する必要がある場合は、管理者としてコマンドラインを実行します:cmdを入力したら、Command Promptプログラムがリストに表示されるまで待ちます。Command Promptアイコンを右クリックして、Run as administratorを選択します。
memoQ serverを起動できない場合、memoQ serverのログファイルまたはイベントビューアは、特定のポートが別のプロセスによって使用されていることを報告することがあります (これは、ほとんどの場合ポート8080です)。このプロセスを停止する必要があります。ポートを使用するプロセスのプロセスIDを確認するには、netstatコマンドを使用します。Windowsのコマンドプロンプトを開き、次のように入力します:
netstat -aon | find ":[port number]"
例:
netstat -aon | find ":8080"
行の最後には、プロセスのプロセスIDが入ります。たとえば、netstat -aon | find ":8080”は次のような結果を返します:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5210
どのプログラムがこのプロセスIDに関連付けられているかを調べるには、tasklistコマンドを使用します。例:
tasklist | findstr "5210"
プロセスを終了するには、taskkillコマンドを使用するか、Windowsタスクマネージャを開きます:
taskkill /F /PID 5210
注意:プロセスを終了できるかどうかを常に確認してください (ポート8080はApache Tomcatに属している可能性があります。これは、memoQ serverと連携して動作するプロジェクト管理ツールの1つであるPlunetによって使用されます)。ポートを使用するプロセスを排除できないことが判明した場合は、memoQ serverのAPIを別のポートに移動する必要があります。方法については、サーバーの構成のトピックを参照してください。
SQL Serverデータベースが別のコンピュータ上にある場合、スケジュールバックアップまたは手動バックアップが失敗し、エラーメッセージが表示されることがあります。エラーメッセージは次のように表示されます:
Creating Volume Shadow Copy snaphot...
Creating database backup...
Backing up files...
Packing database backup...
System.Data.SqlClient.SqlException (0x80131904): Cannot bulk load
because the file "C:\Backup\memoQServer_20170510_104722_72.bak" could not be opened.
Operating system error code 5(failed to retrieve text for this error. Reason: 15105).
...
Backup failed.
System.Exception: An error occured during the backup.
エラーコード5は通常「アクセス拒否」を意味します。SQL Serverが別のコンピュータにインストールされていて、バックアッププロセスが実行中の場合、データベースサーバーコンピュータにデータベースバックアップが作成されます。次に、データベースバックアップをmemoQ serverコンピュータ上のフルバックアップパッケージにコピーします。上記の例では、C:\Backup\フォルダはデータベースサーバーコンピュータ上にあり、データベースバックアップもmemoQServer_20170510_104722_72.bakという名前で正常に作成されていると考えられます。ただし、何らかの理由により、フルバックアッププロセスを続行するためのアクセスは拒否されます。これが実際に「アクセス拒否」の問題であるかどうかを確認するには、次の手順を実行します:
- リモートデスクトップを使用してデータベースサーバーコンピュータにログオンします。
- https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspxからデータベースサーバコンピュータにProcess Monitorをダウンロードします。
- Process Monitorを開きます。
- 次のようにしてフィルタを作成します:定義済みフィルタをすべて消去します。次の設定で新しいフィルタを追加します:"Result" "is" "ACCESS DENIED"。変更を適用します。
- バックアッププロセスを実行します。アクセスが拒否されたために失敗した場合、プロセスモニターはアクセスが拒否されたイベントを表示します。それらはおそらくsqlservr.exeプロセスから来ます。
- Process Monitorで、sqlservr.exeプロセスのプロパティを開きます。Impersonatingセクションを確認してください。
実際にアクセス拒否の問題であった場合は、次の手順で解決する必要があります:
- C:\Backup\フォルダがデータベースサーバーコンピュータに存在するかどうかを確認します。
- 存在する場合は、デプロイメントツールを実行するアカウントに明示的に変更権限を付与します。これを行うには、フォルダを右クリックして、プロパティを選択します。プロパティウィンドウでセキュリティタブをクリックします。
- スケジュールバックアップタスクを実行するアカウントに対して、これを繰り返す必要があります。通常のバックアップをスケジュールするときに、このアカウントを設定またはチェックできます。
- 両方のアカウントがSQL Server上のbulkadminロールに属している必要もあります。これをせっていするには、便利なSQLコマンドのトピックを参照してください。
権限が設定されたら、バックアップまたはスケジュールバックアッププロセスを再度実行してみてください。