Troubleshoot iMIS installations and upgrades
Problem:
You receive the following error message during an upgrade to iMIS:
There was an error during credit card encryption. This upgrade is incomplete, and you must restore from a backup. iMIS will now exit.
Solution:
This error indicates the encryption check failed during an upgrade of the database. iMIS cannot repair this database, so you must restore from your backup.
Problem:
When making a change to a feature using the Set up module function, you expect the changes to take effect after restarting Advanced Accounting Console, but the changes do not appear.
Solution:
This problem occurs when a customization causes changes to the left navigation items, requiring a cache refresh. A cache refresh occurs on regular intervals, typically 15 minutes, but you can also stop and restart all websites that contain your iMIS applications to correct the problem.
Do the following to correct this problem:
- Close the Advanced Accounting Console.
- Wait 15 minutes, or the amount of time specified for the default refresh cache interval.
- If you do not want to wait 15 minutes, go to IIS. Stop and then restart all websites that contain your iMIS applications.
Problem:
On a Windows Vista or Windows 7 workstation, you can start Advanced Accounting Console normally, but when you attempt to log on to iMIS, you receive an OdbcSQL/31 0 - IM002
error, indicating that a datasource name was not found and there is no default driver specified.
Solution:
This problem is caused by trying to run Advanced Accounting Console without first setting the shortcut for Advanced Accounting Console to Run as administrator.
Do the following to set iMIS to Run as administrator:
- Close the Advanced Accounting Console.
- Ensure that your User Account says Administrator.
- Locate the Start menu shortcut for Advanced Accounting Console.
- Right-click the shortcut and choose Run as administrator.
- If prompted to allow the Omnis7.exe program to run, click Allow.
- Log on to the Advanced Accounting Console to ensure that the problem is fixed.
- Perform steps 1 through 6 for any additional Advanced Accounting Console shortcuts on your computer.
Problem:
When you try to restore the iMIS database, SQL Server reports that the database is locked and cannot be restored.
Solution:
You must temporarily stop Internet Information Services (IIS) before attempting to restore the iMIS database. Otherwise, the service can lock the database and prevent the restoration.
Run the following command from a command prompt to ensure that IIS is stopped:iisreset –stop
Once you have restored your database, you can run the command iisreset –start
to restart IIS.
Note: If you changed the name of the database during the restore, such as restored from a different database, you must open the iMIS DB Maintenance Utility (go to Start > ASI > iMIS > Tools) and click Prepare iMIS Database.
Problem:
You cannot determine the current Service Pack of your SQL Server environment, which might be needed for verifying system requirements or working with ASI Technical Support to troubleshoot a problem.
Solution:
To determine the current Service Pack level of your Windows operating system, you can use your SQL Server management environment to run the following SQL Query:
SELECT @@ version
To determine the current Service Pack of your SQL Server environment, you can use your SQL Server management environment to run the following SQL Query:
SELECT SERVERPROPERTY('ProductLevel')
Problem:
Email outputs from iMIS are not being sent. These emails could be merge process outputs, notifications to users, for example, website error messages that are sent to the designated webmaster for your iMIS-based web content.
Solution:
This problem can occur due to several causes:
- Your organization’s SMTP server was not specified correctly during installation of iMIS.
- The domain name of your organization’s SMTP server has changed since you installed iMIS.
- Your organization’s enterprise virus protection might have persistent port blocking rules against mass-mailing worms that were triggered if iMIS tried to send email notifications to you from an IP address that did not correspond to a trusted IP address.
Isolating the cause of the problem depends on which type of notification is not working correctly:
- Outlook event invitations are handled by your Exchange webmail proxy server.
- All other email outputs are handled by the SMTP server that is configured for each iMIS-related ASP.NET application.
Some email-related settings are global to your entire organization regardless of how many application servers you have.
Do the following to specify your global email settings:
- Specify the email address of the designated webmaster for your iMIS-based web content:
- In Desktop, go to System Setup > Module setup > Quick setup.
- In the The default email address for the site field, enter the email address of the designated webmaster for your iMIS-based content.
- (Event invitations only) Specify the Microsoft Exchange account information of the designated webmaster for your iMIS-based web content.
- In Desktop, go to System Setup > Module setup > Exchange settings.
- The Exchange settings window is displayed.
- In the Username field, specify your designated webmaster’s domain user name required to log on to the proxy server for Exchange, for example, username. You might need to prefix the username with the domain name depending on the network location of the exchange server, such as <domainname>\username.
- In the Password field, specify the corresponding domain password of your designated webmaster.
- In the Exchange URL field, specify the namespace URL of your designated webmaster’s Exchange user base mailbox folder when connecting to your proxy server for Exchange. For example, https://webmail.myorg.org/exchange/userName/ if the Exchange server is configured for Outlook Web Access, or exchangeserver.localdomain.local when the Exchange server is on a local network with your iMIS server.
Note: Quickly test these three settings by opening Internet Explorer and entering the Exchange URL that you have specified. You should get a domain authentication dialog asking for your username and password. If your web mail inbox appears after you enter the username and password, these settings are correct.
Some email-related settings are specific to each iMIS server, and even individually specific to each application on a server.
Do the following to specify your iMIS server-specific email settings:
- Modify the web.config files for all instances of your iMIS applications to specify the domain name of the SMTP server to use for each.
- On each iMIS server host, open the web.config files for each iMIS application:
- iMIS default location:
- C:\Program Files (x86)\ASI\iMIS\Net\web.config
- C:\AsiPlatform\Asi.Scheduler_[your instance]\web.config
- iMIS default location:
- In each web.config file, search for the <network> element declaration and modify the value of the host attribute to specify the domain name of your organization’s SMTP server. For example:
<network host="mysmtpsrv.myorg.org"…
Note: In the
<network>
element declaration, you can also specify port and authentication information for your SMTP server to ensure that iMIS can find and log on to the SMTP server in your environment. For details, refer to your Microsoft ASP.NET documentation. - On each iMIS server host, open the web.config files for each iMIS application:
- Restart each iMIS server on which you modified the web.config file.
- Ask our network administrator to check your enterprise virus protection’s port blocking rules to ensure that port 25 of the IP address corresponding to each iMIS server is not blocked.
Problem:
You receive the following error message while using iMIS:
Number of licensed users exceeded. Please try again later.
Solution:
This error is caused by an extraneous entry in the iMIS UserProcess table. If the number of users actually logged in does not exceed your named license counts, do the following to correct the problem:
- Have all users log out of iMIS.
- Use your SQL Server management environment to perform one of the following fixes:
- Delete all rows from the UserProcess table.
- Truncate the UserProcess table.
Note: Never perform these actions while users are connected.
Problem:
You expect a particular iMIS page to appear as the result of taking some action, but what appears instead is a page asking you to log on or to change your password. This error occurs only after your iMIS session has been idle for a long time.
Solution:
See Optimizing timeouts on iMIS servers for how best to adjust your ASP.NET settings for your situation.
Problem:
You expect a particular iMIS window to appear as the result of taking some action, but what appears instead is a Page Not Available error. This error occurs only after your iMIS session has been idle for a long time.
Solution:
See Optimizing timeouts on iMIS servers for how best to adjust your ASP.NET settings for your situation.
Problem:
You expect a particular iMIS window to appear as the result of taking some action, but what appears instead is a Page not found error.
Solution:
To resolve the problem, you need to add the iMIS .NET Application server to the Trusted Sites in Internet Explorer.
Do the following to correct this problem:
- In Internet Explorer, go to Tools > Internet options.
- On the Security tab, select Trusted sites.
- Click Sites.
- Enter your iMIS .NET Application server in the Add this website to the zone field.
- Click Add to add to the trusted Websites list.
- Click Close.
- Apply your changes.
Problem:
When you click a button in an iMIS window, nothing happens. Usually this is a button that you would expect to display a new window of some sort.
Solution:
Most iMIS UI content is a web page displayed in a browser control, even when using Advanced Accounting Console instead of a web client. As with any web-based application, some UI elements are actually pop-up browser windows. If you have any type of pop-up blocking settings enabled in your browser, or if you are using some third-party pop-up blocking software, this will prevent some iMIS windows from being displayed properly.
You must disable all pop-up blocking behavior in your browser for content that it receives from the iMIS application server tier or public website tier. If you have third-party pop-up blocking software, you must likewise configure it to enable pop-ups from any iMIS source.
If you have problems publishing and creating new content, your host might be missing Windows Server roles it needs:
- Add Web Server and Application Server roles to each iMIS server.
- Add Web Server roles to each web server.
iMIS offers SQL Server Reporting Services (SSRS) support through the ReportViewer control and uses its Reset method, which was not in the original distribution of the control. Unfortunately, several Microsoft installers ship the older version of the control and place it in the GAC, where it is found before the newer version in the iMIS \bin folder.
You have an older version if you encounter an error like the following:
"Microsoft.Reporting.WebForms.ReportViewer” does not contain a definition for “Reset' and no extension method “Reset” accepting a first argument of type
"Microsoft.Reporting.WebForms.ReportViewer” could be found (are you missing a using directive or an assembly reference?)
To get the newer version, search the web for Microsoft Report Viewer Redistributable 2005 SP1 (Full Installation), which is available as a free download from several sites.
Note: Be sure you get the 2005 pack (the 2008 SP1 package cannot correct the problem). Also be sure that you select Full, not Upgrade.
Problem:
When running lengthy ad hoc queries or reports, or when using third-party tools for reporting from the iMIS database, locks are placed on iMIS tables. This prevents iMIS users from performing updates or inserts until the reports finish.
Solution:
The problem is with lock escalation and the transaction isolation level in SQL Server. If a query affects a large percentage of rows in a table, the shared page locks are escalated to a table lock to reduce locking overhead.
There are two ways to deal with this problem:
- Best approach – Separate your transaction processing from reporting functions, so that the long-running SQL queries are run against a static database:
- Create periodic copies of the iMIS database to use for reporting.
- Run all reports against the copied database, while transactions go against the original database.
- Alternative approach - Add the NOLOCK keyword to long-running SQL queries to keep locks from lasting as long. This forces SQL Server to change the transaction isolation level to READ UNCOMMITTED. This does not issue shared locks at either the page or the table level and does not honor exclusive locks, all of which can result in erroneous query results because of possible dirty reads and phantom rows.
This is the best approach because your long report queries are run against a static database. Using NOLOCK might cause erroneous values in reports if dirty reads or phantom rows have affected the result set of the report query.
To add the NOLOCK keyword to ad hoc SQL queries (or custom scripts), add the string (nolock) to the end of the FROM clause. For example:
Select ID, LAST, ADDRESS from Name (nolock)
To configure iMIS to use the NOLOCK keyword automatically on specific long-running reports, create a NOLOCK keyword for large report runs.
- Obtain the iMIS SQL Server login password for the SQL Server instance on which the iMIS database exists.
-
Note: Some reports that have custom reporting engines (RunProcedure specified in report spec) will ignore the NOLOCK keyword. This typically affects reports that join two or more tables.
- Log on to Advanced Accounting Console as MANAGER.
- Select Utilities > Report Specs. The Report Specifications window is displayed.
- From the list of reports, select a report that is taking a long time to run and locking records.
- Click Parameters. The Detail Report Parameters window is displayed.
- Click Edit.
- In the Parameters field, enter
NOLOCK
. - Repeat this process for all affected reports.
- Close the Detail Report Parameters window.
- Close the Report Specifications window.
- Select File > System Setup. The System Setup window is displayed.
- Click SQL Security Setup. The SQL Security Setup window is displayed.
- Click Edit.
- In the NOLOCK keyword field, enter
NOLOCK
. - Click Save.
- Enter your sa Password when prompted.
- Click Create SQL Logins to add the NOLOCK keyword to logins on that instance.
- Enter the password and accept any messages about shutting down iBO on the host.
- Answer files are specific to the version of the setup.exe file that was used to create them. You cannot use answer files that were created from a previous release of iMIS.
- If a silent installation fails for a new installation of the Advanced Accounting Console, it is generally safe to troubleshoot the issue with the answer file and then attempt the silent installation again. However, at that point you are outside of the automated process and it might be easier to manually run the installer on any workstations that failed the automated silent install.
- If a silent installation fails for an upgrade of an existing Advanced Accounting Console, you should not try to modify the answer file and run the silent installation again, because it is likely by this point that some Advanced Accounting Console-related files have already been removed from the workstation and you could encounter more errors. Instead, you should manually run the iMIS Installer on workstations that failed a silent upgrade attempt.
- In any scenario where you record an answer file on one computer and then run a silent installation using that answer file on a different computer, there are potential points of failure due to differences in the configuration of the two machines. Some typical examples are:
- You record an upgrade of the Advanced Accounting Console on a computer where the iMIS client is installed in the default C:\Program Files (x86)\ASI\iMIS path, and then you run a silent installation on a target computer where the Advanced Accounting Console is installed in a different path.
- The answer file was recorded on a computer that already had an Advanced Accounting Console (an upgrade installation), but the target computer does not have an Advanced Accounting Console installed already (a new installation), so the installation requires more information than what was recorded in the answer file.
- The target computer does not meet all the system requirements and prerequisites.
- When you manually edit an answer file, you should take special care to change only values that are obviously file paths, database connection information, iMIS server URLs, license values, and so forth. Modifying other non-obvious values can result in infinite loops within the iMIS installer and other undesirable behavior.
- It is advisable to test your silent installations on non-production computers that are closely analogous to your production target computers before actually running the silent installations on production computers.
- The setup.log file contains three sections that are useful for troubleshooting:
- [InstallShield Silent] identifies the version of InstallShield Silent used in the silent installation. It also identifies the file as a log file.
- [Application] identifies the installed application’s name and version, and the company name.
- [ResponseResult] contains the result code indicating whether the silent installation succeeded. An integer value is assigned to the ResultCode keyname in the [ResponseResult] section. InstallShield places one of the following return values after the ResultCode keyname:
- 0 Success.
- -1 General error.
- -2 Invalid mode.
- -3 Required data not found in the Setup.iss file.
- -4 Not enough memory available.
- -5 File does not exist.
- -6 Cannot write to the response file.
- -7 Unable to write to the log file.
- -8 Invalid path to the InstallShield Silent response file.
- -9 Not a valid list type (string or number).
- -10 Data type is invalid.
- -11 Unknown error during setup.
- -12 Dialogs are out of order.
- -51 Cannot create the specified folder.
- -52 Cannot access the specified file or folder.
- -53 Invalid option selected.
- The iMISinstall.txt file contains a detailed installation log for general iMIS installation troubleshooting. Whenever data is read from the answer file used in a silent installation, you will see a message in this log like the following:
12:02:58 | SilentReadData section: asiDatabaseInfo-0 key: sgSQLServer 12:02:58 | found sgSQLServer: MYMACHINEHOST\SQL2005CS
This example shows that the iMIS Installer silently read and set the value of sgSQLServer to MYMACHINEHOST\SQL2005CS.
12:02:58 | bad db date in silent mode..aborting 12:02:58 | OnAbort called
Tips to consider:
- If there appears to be a problem with the result of a silent installation, you can review the following log files to help troubleshoot the problem:
- The silent installation log file (setup.log by default) located by default in the same folder as the setup.exe file. This location and file name might be different as described below.
- The IMISinstall.txt file located in C:\Windows\Temp.
- Although you can manually edit an answer file to produce slightly different variants of the same general silent install, you might get unexpected results in some cases. Editing an answer file for the same general type of installation to change some minor details, such as which iMIS database to use, is generally easy to do. But choosing entirely different components to install results in substantially different answer file contents, so it’s impractical to edit an answer file to add or remove iMIS components. It is a better practice to run the iMIS Installer in recording mode to create different types of installations.
- If you prefer the answer file be placed in a location other than the default C:\Windows folder, use the -f1 parameter as follows when you run the setup.exe file in recording mode. For example:
C: \temp\setup.exe -r -f1C:\temp\setup.iss C: \temp\setup.exe -r -f1"C:\<Directory with a space in it>\setup.iss"
Note: Make sure you have no space between the -f1 parameter and the file path that indicates the target folder for the setup.iss file. Also, the -f1 parameter must use an absolute file path that starts with a drive letter.
For example, assume that the setup.exe file for the new iMIS release is located in a network drive that is mapped to drive letter U: on every workstation on the network. You want to record a new answer file for installing only the Advanced Accounting Console client from that setup.exe file. You would first run the following command on a workstation that does not contain an Advanced Accounting Console to record a specially-named answer file for doing silent installs or upgrades of only the Advanced Accounting Console for this release:
U:\iMISInstaller\setup.exe -r -f1U:\iMISInstaller\iMISDesktop.iss
Then on each workstation where you want to install or upgrade the Advanced Accounting Console, you would run the following command:
U:\iMISInstaller\setup.exe -s -f1U:\iMISInstaller\iMISDesktop.iss
U:\iMISInstaller\setup.exe –s -f1U:\iMISInstaller\iMISDesktop.iss –f2U:\iMISInstaller\Logs\userXdesktop.log
Note: The -f2 parameter must use an absolute file path that starts with a drive letter.
Problem:
Overall performance of a back-end tier or of a Full user’s Advanced Accounting Console seems slow.
Solution:
The default protocol for SQL Server connections is Named Pipes, so performance might be slowed on a network where TCP/IP is the primary network protocol.
For sites whose primary network protocol is TCP/IP, you usually can enhance performance by using the process described in your SQL Server documentation for setting all hosts and workstations involved in iMIS network traffic to use the TCP/IP protocol instead of the Named Pipes protocol.
Problem:
During an upgrade from a previous release of iMIS, you receive an error message stating:
a query uses non-ANSI join operators
The upgrade fails.
Solution:
This problem occurs only in Microsoft SQL Server 2005 environments and is most likely to occur if you are running your current iMIS database in SQL 2000 compatibility mode.
The upgrade scripts for iMIS in a SQL Server 2005 environment require all objects in the iMIS database to be using the ANSI-standard join clauses introduced in Microsoft SQL Server 6.5. This error is generally caused by a custom trigger or stored procedure using the old-style join syntax that overloads the WHERE clause to provide both joins and restrictions. Specifically, the problem is caused by the *= and =* outer join operators, but it is good practice to ensure that all such joins are declared using an ANSI-standard join clause.
Do the following to correct this problem:
- Restore your original backup of the iMIS database.
- Review the restored database for custom triggers and stored procedures, and ensure that all such triggers use only ANSI-standard join clauses (INNER JOIN, LEFT OUTER JOIN, and so on).
- Run the upgrade procedure again.
Problem:
New windows take a long time to appear, especially if you have not performed any action in iMIS for 20 minutes or longer.
Solution:
See Optimizing timeouts on iMIS servers for how best to adjust your ASP.NET settings for your situation.
Problem:
When you run the Analyze Database function of the DB Maintenance utility on an upgraded iMIS database, you receive Wrong Ordinal messages on one or more table columns.
Solution:
This error is normal on upgraded iMIS databases, and it is mostly harmless and can be safely ignored in most cases. This error can cause problems for example if you attempt to bulk load an affected table using the bcp utility and the format files created by ASI. Tables with this reported error will not successfully bulk load unless you first modify the ASI-supplied format file to reflect the actual column order of the affected table instead of the default expected column order specified in the ASI-supplied format files.
Although this error is mostly harmless (except in the case of bulk load operations), you can correct the error by rebuilding the table.
Note: Never run an older version of DB Maintenance against a newer database.
Do the following to rebuild a table:
- Have all users log out of iMIS.
- Schedule downtime for rebuilding any tables containing large amounts of data.
- Back up all tables that you plan to rebuild.
- Go to Start > All Programs > ASI > iMIS > Tools > iMIS DB Maintenance Utility.
- Select the table to be rebuilt.
- Click Rebuild Table.
If you have added custom objects (Foreign Key constraints, triggers, indexes) to iMIS tables, you must remove the customizations and then add them back.
Do the following to rebuild a customized table:
- Record all custom database objects that you have added to your iMIS tables, because you must manually recreate them.
- Manually remove your objects, for example, drop all foreign key constraints on the table (both to and from the table, so you must also check other referencing tables and drop the relevant foreign keys there as well).
- Go to Start > All Programs > ASI > iMIS > Tools > iMIS DB Maintenance Utility.
- Select the tables to be rebuilt.
- Click Rebuild Table.
- Manually recreate all custom foreign key constraints that you recorded.