iHTML - Server Side Scripting/Programming Language
Inline Internet Systems, Inc.
Inline HyperText Markup Language Extension ToolsInline HyperText Markup Language Extension Tools
Support

FAQ
Problem

I am using iHTML and it seems to be very slow.

Solution

This could be due to a number of things. It should be operating very quickly so if it isn't there might be a problem. The most common reason for this is having the diagnostic logging turned on. This can be done if you have <iilog cond=true> on a page that got accessed. It can also occur if it is turned on in the registry. Ensure in HKLM/software/inline/ihtml/currentversion/ the DIAGLOG is set to FALSE.

Problem

I am using iHTML with Website 2.x and I get an HTTPD error when I shutdown my server or WebSite.

Solution

This is due to OLE/ODBC and ISAPI not being an asynchronous API. OLE requires a default window which iHTML does not have (since there is no GUI). When a shutdown signal is sent by the web server, iHTML never receives the message and can not unload the ODBC drivers. If a default DSN is not used then this problem does not occur. Remove the default DSN to fix this problem.

Problem

I am using iHTML with Website 1.x and I get errors when I load Netscape or Microsoft IE.

Solution

Website 1.x used the operating system file extension mappings so when you load iHTML it sets the .htm and .html extensions to the ihtml.dll file. When a web browser is subsequently loaded on the web server, those mappings get partially changed leaving the machine in an inoperable state. Do not use a web browser on the server with website 1.x and iHTML.

Problem

iHTML does not seem to load or process pages or my web server will not serve any pages now that I installed iHTML.

Solution

iHTML might not be initializing correctly for some reason. Look in the ihtml.log which is found in the same directory as the ihtml.dll file (c:\ihtml or c:\website\ihtml are the defaults). Look for any messages that might indicate a problem such as KEY EXPIRED. If the last line is BLOCKS BUILT then there is a problem with your default DSN ODBC driver.

Problem

I get an Error 500, Could not load ihtml.dll on Windows

Solution

This is likely caused by a missing DLL file that comes with iHTML. Make sure that you have REGLIB.DLL in the winnt/system32 subdirectory. The other cause might be incorrect permissions in the directory that the IHTML.DLL file is located or where the HTML file with iHTML tags in it is located. You need read/write/execute permissions by the web server user on any files that ihtml might need to access.

Problem

I get an error 320 when doing a database query on MS Access or Borland Paradox.

Solution

This error may occur if your database server is not multithreaded. IHTML 2.1 has new features that should prevent this error from occurring. Please report it to custserv@inline.net if you do encounter the error.

Problem

On Microsoft SQL server, if a query fails, it will not automatically release the connection. If you get a lot of failed queries then it will eventually use up the available connections.

Solution

This is not an iHTML problem. When developing a new site and writing the SQL queries, it is a good idea to check the current activity log in SQL Enterprise Manager and kill any failed queries on a regular basis. Use iSQLMORE where possible as well.

Problem

I get a 'Document Contains no Data' error message

Solution

This is typically the result of an error on the source page. Some common mistakes include the following.

  • It is missing a required tag closing symbol >.
  • It has some Javascript on the page that uses the < symbol.
  • The page that was requested might not exist. Set up the NoExistPage registry setting to prevent this from happening and check the file extension to make sure you are calling the correct file
  • In using the <iREM> tag you put in an extra > symbol. This is easy to do if remarking out old code with tags in it. Be careful with this one. <iREM> simply searches for the next > sign to close out the tag.
  • iFILE has an invalid filename for APPEND or READ
  • Different aliases on the open and close tags for iCASE, iWHILE, iLOOP, iSQL
  • Make sure that any double quotes are matched up correctly. Removing the <!ihtml> tag temporarily from a page will get rid of the error and allow you to find the problem more easily by viewing source.
  • Put an iERROR block on the page since it might trap the problem so it can be fixed. The page will be resolved up to the problem that occurred. Most of these type of problems are rectified by doing this.

Problem

Sometimes when I am creating a new page, it just will not load and the browser just sits there.

Solution

This is typically the result of some mistake on the page such as:

  • forgetting the closing tag for a multi-component tag like iSQL,/iSQL,iLOOP,/iLOOP,iCASE,/iCASE etc… and
  • getting into an infinite loop. iHTML 2.1 has a MAXITERATIONS registry setting to prevent this.

Problem

I am using Microsoft Access and if I do a lot of simultaneous database queries, the machine slows down and eventually hangs. Why is this?

Solution

MS Access ODBC drivers are not multithreaded so a lot of activity could get the database into a deadlock situation. If this is happening a lot, we recommend upgrading to a real database server such as MS SQL, Postgres, mySQL or Oracle.

Problem

I need to increase the number of concurrent threads in Netscape from 32 to 128 or more for iHTML 2.1 to work properly. How do I do this?

Solution

Go to N/S Admin. server and make this change. See the Netscape documentation for a more detailed description.

Problem

How do I know if the iHTML tool is installed?

Solution

If it is installed, sometime between starting the Web server and the completion of the first hit, the server will beep. This beep occurs when the server first loads the DLL file and the exact sequence varies from server to server. Also, if you view the source file in the browser and the tags are still there, then iHTML 2.1 has not been installed correctly. It will also create an ihtml.log file where the ihtml.dll file is located.

Problem

What modifications does iHTML make to files, registry, etc.?

Solution

ISAPI specific installation (IIS 2/3)

The IHTML.DLL file is installed into the scripts directory under the server installation. This may be any directory with server CGI execution privileges. The scripts directory (used in version 1.0) has been replaced with an iHTML 2.1 directory (which was created). This along with the server root directory are both given execution privileges.

The following items are added under the server's Parameters\\Script Map or Parameters\\ScriptExtMap key in the registry.

Name Value
file name extensions path to the IHTML.DLL file

To respond to with the tool:

For example:
.IHT C:\INETSRV\SCRIPTS\IHTML.DLL

Add as many of these lines as you wish for different file types.

You may take over .htm and .html extensions as well as you wish, but this adds server overhead. Keeping the files with and without ihtml separate increases server performance on files that don't need the ihtml parsing.

Note 1: If you wish to remove (uninstall) this software from your system, simply delete all the noted registry keys.

Note 2: See also section 2.1.1 for keys for the tool itself.

Problem

I am running IIS or Purveyor Server and IHTML.DLL does not seem to be getting accessed.

Solution

Make sure you have set the scripts directory under the server to have "execute" or "CGI execution" privileges. In order for .htm files to get parsed by the iHTML engine, the directory must have execute privileges, and not read privileges. During install, the privileges are set to execute only in the server root directory as well as the new created iHTML directory. .htm files may be "executed" by iHTML from either one. You may not wish to leave the server root this way and confine iHTML files to the iHTML directory.

Note: Files that do not contain extension tags will simply pass through unaffected. Therefore, if you leave the server root this way, it has no ill effects other than a small performance penalty due to the parsing. Also make sure that you put <!ihtml> at the beginning of any iHTML enhanced pages.

Problem

I can't use the iHTML or iSQL tags.

Solution

Make sure the datasource you specified is available and the service started prior to starting the http service. If not, start it, and then restart the http server. Also, confirm the login and password, and that they have sufficient authorization to do the intended actions. A file called ihtml.log gets created each time iHTML is started. The file is located in the same directory at the ihtml.dll file. View this file to make sure that the default datasource is connected.

Other Notes

  • If a user puts in an invalid DSN entry while installing iHTML 2.1, it will not allow the server to start. When iHTML 2.1 expires it will also stop the web server from processing.
  • If LOGHITS=TRUE is set in the registry and the COUNTER table is not setup in the default datasource, then LOGHITS should be set to FALSE.
  • When using < or > in the iMATH Tag, use them in quotes like ">" or "<".
  • When passing a colon variable that contains spaces from one page to another directly as an HREF should use iREPLACE to replace the spaces with + signs. Alternately, use the EVAL=TRUE and QUOTE=TRUE directives in the iEQ tag to put quotes and evaluate the parameter passed to the HREF tag.
  • Is the problem with the db driver ?
  • Is the db driver single threaded ?
  • Is the # of connections set too low on the driver ?
Problem

How does iCOUNTER work if I don't put anything on the pages?

Solution

iCOUNTER uses a table that is set up in your default datasource. Everytime a page is accessed, the count for the page is incremented. If the page is not in the database yet, it automatically adds it. The iCOUNTER tag is used to query the database and get the hit counts.

Problem

What is the difference between the iSQL and iHTML tags?

Solution

The iSQL tag is the new format for version 2.0 of the product. The iHTML tag is the correct syntax for use in version 1.0 and 1.1. The product will be backwards compatible. The iSQL tag structure will allow the assigning of query results to variables and the embedding of commands between record fetches.

Problem

My thread pool increased and my server crashes.

Solution

Increase the thread pool for the server to 128 or higher if necessary.

Problem

I get an error 2186 in NT

Solution

This is related to the start up code of iHTML which might take longer than the timeout that NT allows. The program will still get loaded and this error can safely be ignored.

Problem

I get an 'ODBC Environment Not Initialized' error message.

Solution

Make sure the ODBC datasource is setup as a System DSN

Problem

Under NS I don't want every .HTM or .HTML file processed.

Solution

To specify a file type with iHTML extensions, add a mime type. Then in the obj.conf or registry change the type from text/html to the new mime type that you created.

Problem

Under IIS I don't want every .HTM or .HTML file processed.

Solution

To specify a file type with iHTML extensions, change the entry in the registry from .HTM and .HTML files to the new file extension.

Problem

I can't seem to get the product working.

Solution

Please make sure of the following:

1. Make sure you hear a beep on server startup. If not then the DLL is not loading.

2. Do you have an <!ihtml> tag at the top of the page?

3. Has the product expired. If you get a server error then this is the problem. Check the ihtml.log for a expired or invalid key/serial number.

4. For Enterprise & Fasttrack, If you have multiple servers on a machine, make sure the obj.conf file got updated. There are instructions in the manual on checking this.

Problem

How do I configure IIS to serve PNG files?

Solution

A useful step-by-step guide with screenshots has been published by Mike Schinkel of VBExtras and put on the web at: www.libpng.org.

Problem

Getting iHTML to Work with PGP on Windows

Solution

There are a few modes PGP can work in and you need to understand what PGP actually does in order to get it to work with iHTML successfully.

iHTML can make use of PGP only as a "batch convertor". This means iHTML tells PGP to run, and gives it the name of a file to encode, and the method to use to encode it.

Depending on the encoding mode selected by command line arguements, PGP may need to know the "user" invoking the command in order to determine what key to use to encrypt or decrypt the file.

If PGP is not able to determine this due to being logged in as a particular user, it pops up a message dialog box for the information. Clearly this is not going to work when run as part of a server process. Therefore, having the webserver logged in as the user necessary is the only choice. This can be accomplished in 2 ways.

  1. Run the webserver as an application from a desktop logged in as the correct user.
  2. Run the webserver as a service/daemon logged in as a particular user (not root or administrator or the system account), but a real user that has a home directory etc., and a configuration for PGP that includes a keyring.

PGP must also be supplied with all parameters necessary using the args= directive of the icgi tag, such as which mode to operate in, the key to use if non-public key encoding or signing is desired, the file to operate on, etc. If PGP is not supplied all necessary arguement, it pops up a dialog box. Sometimes such as when "interact with desktop" is not available in windows, this proves impossible period. Other times the box sits on the server unanswered by any user. Programmers must be aware of this and ensure PGP has all the information it needs to run in an unattended manner.


If you have any feedback for us, please Email us.

Company Info   |   Job Opportunities   |   Privacy Policy   |   Contact Info   |   Site Map   |   Links  
To request information email custserv@inline.net or Phone 905-680-0436
Copyright © 1999-2017. Inline Internet Systems, Inc. All Rights Reserved.