I am using iHTML and it seems to be very slow.
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.
I am using iHTML with Website 2.x and I get an HTTPD error when I shutdown my server or WebSite.
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.
I am using iHTML with Website 1.x and I get errors when I load Netscape or Microsoft IE.
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.
iHTML does not seem to load or process pages or my web server will not serve any pages now that I installed iHTML.
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.
I get an Error 500, Could not load ihtml.dll on Windows
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.
I get an error 320 when doing a database query on
MS Access or Borland Paradox.
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 firstname.lastname@example.org
if you do encounter the error.
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.
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.
I get a 'Document Contains no Data' error message
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 >.
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
- 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.
Sometimes when I am creating a new page, it just
will not load and the browser just sits there.
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
- getting into an infinite loop. iHTML 2.1 has
a MAXITERATIONS registry setting to prevent this.
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?
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.
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?
Go to N/S Admin. server and make this change. See
the Netscape documentation for a more detailed description.
How do I know if the iHTML tool is installed?
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.
What modifications does iHTML make to files, registry,
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
file name extensions path to the IHTML.DLL
To respond to with the tool:
Add as many of these lines as you wish for different
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.
I am running IIS or Purveyor Server and IHTML.DLL
does not seem to be getting accessed.
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.
I can't use the iHTML or iSQL tags.
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.
- 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
- 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
- Is the problem with the db driver ?
- Is the db driver single threaded ?
- Is the # of connections set too low on the driver
How does iCOUNTER work if I don't put anything on
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.
What is the difference between the iSQL and iHTML
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.
My thread pool increased and my server crashes.
Increase the thread pool for the server to 128 or
higher if necessary.
I get an error 2186 in NT
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.
I get an 'ODBC Environment Not Initialized' error
Make sure the ODBC datasource is setup as a System DSN
Under NS I don't want every .HTM or .HTML file processed.
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.
Under IIS I don't want every .HTM or .HTML file processed.
To specify a file type with iHTML extensions, change
the entry in the registry from .HTM and .HTML files to the new
I can't seem to get the product working.
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
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
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.
How do I configure IIS to serve PNG files?
A useful step-by-step guide with screenshots has been published by
Mike Schinkel of VBExtras and put on the web at:
Getting iHTML to Work with PGP on Windows