Troubleshoot memoQ server
This topic contains useful tips to resolve problems you may have with your copy of memoQ server.
Do not make changes to your system unless you know exactly what you are doing, and everything written here is clear to you.
When you try to start memoQ server in the Deployment tool, memoQ server may remain Stopped after you click Start memoQ server.
To find out why this is happening:
- Open the Event Viewer program in Windows. Press the Windows key, type event, and in the list of matches, click Event Viewer. This program may take a while to start up.
- In Event Viewer, expand the Applications and Services Logs item, then click memoQserver. Events from memoQ server will be listed on the right.
- Double-click the last (topmost) error event from memoQserver. You will see an error message in the Event Properties window:
This is just an example
The error message will help you find out what to do.
There are two main reasons why the memoQ server service may fail to start:
- memoQ server is not activated: Still on the server computer, open the memoQ server activation program, and check the licenses of your system. To learn more, see the Activate and start memoQ server topic.
- memoQ server cannot log on to SQL Server, or it cannot access the memoQ server database: This happens if SQL server runs on another machine, and the user that represents memoQ server does not have enough permissions to access the SQL Server or the database itself. To resolve this, read the memoQ server cannot log on to SQL Server or the Using an SQL Server database on a different computer sections, later in this topic.
- memoQ server tries to use a TCP port that is being use by another application: This can happen if you set up memoQ server to use HTTPS connections, or you set up the application programming interfaces (APIs). To learn more, read the Network port in use by another process section, later in this section.
If the Windows event logs say there is a message that memoQ server failed to log on to SQL Server, you need to configure SQL Server to grant access to memoQ server. More precisely, you need to grant access to the user account that represents memoQ server in the system.
If SQL Server was not installed with the Windows-integrated or Mixed settings, you need to repeat the installation of the SQL Server instance. Make sure you set up SQL Server with the authentication set to Windows-integrated or Mixed. (There is no reason to use Mixed if memoQ server is the only application that uses that SQL Server instance.) This will not delete the database file.
You need SQL Server Management Studio to resolve the problem. If it is not installed, download and install it from this website: https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
Use SQL Server Management Studio to grant access to the memoQ server service account. Normally, it is a virtual service account (NT SERVICE\MemoQ server service), but it is possible to choose a different account in the Services program. This time, open the Services program (in the Start menu, type services.msc), right-click the name of the memoQ server service, and choose Properties. In the Service Properties window, click the Log On tab, and note the user name displayed there. You need to configure SQL Server to allow access for that user.
Set up the service account in Microsoft SQL Server Management Studio as follows:
Under Logins, you may need to add the memoQ server service user, and make that user db_owner over the database.
You can also use the sqlcmd command line. To learn more, read the Useful SQL commands topic.
Trial or Evaluation editions of SQL Server are not supported: Using such editions is known to cause problems.
When you set up the database for the memoQ server, you need appropriate permissions to create and configure the database in SQL Server. When SQL Server is on the same computer as memoQ server, this is not a problem. You need administrator access anyway to install memoQ server, and administrator privileges on the same computer are usually enough to set up the database in SQL Server, too.
However, when you install SQL Server on a different computer, you need to prepare it manually, so that the memoQ server installer can set up the database over the network.
Do this before you install memoQ server on the memoQ server computer.
To set up SQL Server permissions, do the following:
- On the computer that runs SQL Server, create or find a Windows account with the same name and password as the one you use to log on to the memoQ server computer.
Computers in same domain? No need for new user: If the two computers are members of the same Active Directory domain, you can skip this step: both computers take user names and passwords from the central directory database.
- You need to make this Windows account a member of the sysadmin security role in SQL Server. On the computer running SQL Server, open SQL Management Studio (if it’s not available, install it using the SQL Server installer). Connect to the SQL Server instance that you want to host the memoQ server database.
- Under Object explorer, expand Security, and then Logins. In the user list under Logins, right-click the name of the Windows account, and choose Properties from the popup menu. The Login Properties appear on the right.
Note: If the user is not listed under Logins, right-click Logins, and choose New Login… from the popup menu. The New Login window opens. Next to the Login name box, click Search. The Select User or Group window opens. Type the name of the Windows account, and then click Search. When the user name is underlined, click OK to return to the New Login dialog.
- In the Login properties or the New login window, click the Server Roles category on the left. In the list of the server roles to the right, check the check box for sysadmin:
- Click OK to return to the SQL Server Management Studio main window. The selected Windows account is now member of the sysadmin role in SQL Server. Close SQL Server Management Studio.
- Return to the computer where you are installing memoQ server. In the Database options page of the memoQ Server setup wizard, type the IP address or the name of the SQL Server computer, and then select the appropriate instance (the one where you made the Windows account member of the sysadmin role).
To learn how to grant the necessary permissions by hand: Read the Useful SQL commands topic.
Under some circumstances, memoQ server may stop unexpectedly. We recommend that you contact memoQ Ltd.’s support services. Use the contact form on the memoq.com website: https://www.memoq.com/contact-us
After a failure, memoQ server will automatically restart if that is possible: If it is not running, read the memoQ service will not start section, earlier in this topic.
Always include the last log file of the memoQ server. The log file is always in the Log folder within the memoQ server data folder, which is C:\ProgramData\MemoQ Server\Log by default. The newest log file is called Server.log. Compress the log file in a zip file for faster uploading.
Some of memoQ server's data files always need to be in the C:\ProgramData\MemoQ Server folder. You can move the rest to a different drive, if you need more space:
- Log on to the memoQ server computer as an administrator using Remote Desktop or another remote control facility.
- Run the Deployment tool, and stop the memoQ server service.
- Copy the memoQ server data folder to the new location (Example: D:\NewFolder). Normally, memoQ server data are under C:\ProgramData\MemoQ Server. (Do not delete the data folder from the old location.)
- Use Notepad or another plain text editor. (Use an editor that can use color to show XML - for example, Notepad++.) Open the Configuration.xml file from the C:\ProgramData\MemoQ Server folder.
- Change the contents of the DataDirectory element to the path of the new folder:
<DataDirectory>D:\NewFolder</DataDirectory>
- Save the Configuration.xml file.
- In the C:\ProgramData\MemoQ Server folder, delete these folders:
- In the D:\NewFolder folder, leave only the folders listed above. Delete everything else - those things need to stay in C:\ProgramData\MemoQ Server, otherwise memoQ server cannot start.
- In the Deployment tool, start the memoQ server service again.
- Check if all functionality of memoQ server works correctly.
If you cannot free up enough space with this, you can try moving the SQL database, too: copy the database file to the new location, and then use SQL Server Management Studio - or the sqlcmd command line - to detach the old database file, and attach the new database file to the same SQL Server instance. To learn more, read the Useful SQL commands topic.
Moving the SQL database is risky: It can cause severe data loss. Do not try this unless you know exactly what you are doing.
You need the Windows command line for this. To open a command line, press the Windows key, type cmd, and press Enter. If you need to stop a process, run the command line as an administrator: After you type cmd, wait till the Command Prompt program appears on the list. Right-click the Command Prompt icon, and choose Run as administrator.
When the memoQ server cannot be started, the memoQ server log file or Event Viewer may report that a certain port is being used by another process (this is most likely port 8080). You may need to stop this process. To find out about the process identifier of the process using the port, use the netstat command. Open the Windows command prompt, and enter the following:
netstat -aon | find ":[port number]"
For example:
netstat -aon | find ":8080"
The process ID of the process will be at the end of the line. For example, netstat -aon | find ":8080” may return this:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 5210
To find out which program is associated with this process ID, use the tasklist command. Example:
tasklist | findstr "5210"
To terminate the process, use the taskkill command, or open the Windows Task Manager:
taskkill /F /PID 5210
Caution: Always check if the process can be terminated (port 8080 may belong to Apache Tomcat - which is used by Plunet, one of the project management tools that work together with memoQ server). If it turns out that you cannot get rid of the process that uses the port, you may need to move the memoQ server APIs to different ports. To learn how, read the Configure server topic.
When the SQL Server database is on another computer, scheduled or manual backups may fail with an error message. The error message starts like this:
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.
Error code 5 usually means "access denied”. When SQL Server is installed on another computer, and the backup process is running, it creates the database backup on the database server computer. Then it copies the database backup into the full backup package on the memoQ server computer. In the example above, the C:\Backup\ folder is located on the database server computer, and the database backup was probably also created successfully with name memoQServer_20170510_104722_72.bak. Still, for some reason, access is denied to continue the full backup process. To verify if this is indeed an "Access denied" issue, try the following:
- Log on to the database server computer using Remote Desktop.
- Download Process Monitor to the database server computer from https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx.
- Open Process Monitor.
- Create a filter as follows: Clear every predefined filter. Add a new filter with these settings: "Result" "is" "ACCESS DENIED". Apply the changes.
- Run the backup process. When it fails because access is denied, Process monitor will display the access denied events. They will probably come from to the sqlservr.exe process.
- Still in Process Monitor, open the properties of the sqlservr.exe process. Look at the Impersonating section.
If it was indeed an access denied issue then the following should resolve it:
- Check if the C:\Backup\ folder exists on the database server computer.
- If it exists, grant modify permission explicitly to the account that runs the Deployment tool. To do this, right-click the folder, and choose Properties. In the Properties window, click the Security tab.
- You need to repeat this for the account that runs scheduled backup task. You can set up or check this account when you schedule a regular backup.
- Both accounts also need to be in the bulkadmin role on the SQL Server. To set that up, read the Useful SQL commands topic.
Once the permissions are set up, try running the backup or scheduled backup process again.