WebHub Object Pascal Components
- New-IPC v3.150
- WebHub v3.150 introduces a new type of interprocess comms which will eventually run on Linux as well as Windows.
- On a per-deployment-machine basis, you must use either v2.x or v3.x. You cannot mix.
- Details about how to switch between versions during development are in the README file supplied with the WebHub Components.
- The good news is that all WHTEKO, XML and PAS code is 100 percent compatible as long as you recompile.
- As of December 2011, HREF Tools has converted almost al public machines to the new-ipc edition. There is a chart
at the bottom of the www.href.com/whversion page, where progress is tracked.
- Start Apps before or after Hub v3.150
- This was an issue in v3.148 and v3.149 only. You can now start apps before or after the Hub service, and they will
connect and serve pages properly.
- Memory leaks fixed v2.150
- Detected by EurekaLog v6.
- 1. Fixed in utTrayFm.pas
- 2. Fixed in whMain.pas
- TtpSharedLongint now better known as TtpSharedInt32 v2.150
- As a reminder about the data size, the TtpSharedLongint component is now called TtpSharedInt32. TtpSharedLongint is an alias to that.
- If you search and replace the class in your own code, be sure to change it in *.pas and *.dfm.
- Static sites: /index.html stripped from export url v2.151
- For WebHub sites that are exported, for URLs ending in /index.html, the URL is referenced as purely
- ThtObjectStore.AllocateInstance terminates application if out of memory and compiled with CodeSite v2.151
- If you do not compile with -DCodeSite then the behavior is the same as before, i.e. an exception is raised.
- This code runs during all parsing, including all page generation, i.e. on every hit. It can fail when Windows memory it too severely fragmented.
- Reference: htObjMem unit.
- Improved session cookie handling v2.153
- Fix in cgiVars.pas: give precedence to new-session number assigned by Hub, rather than session cookie.
- NB: a limitation in v2.153 is that 1 AppID must use 1 cookiedomaindefault for all session-number cookies.
If you are running 1 AppID on 2+ domains on a machine, then you should not use v2.153.
- RejectSession always resets session cookie to blank v2.153
- Reminder, if you want to use session cookies, set (a) the name of the cookie and (b) the domain using ZMAdmin. This first
setting goes into WHCentralInfo.xml and the second one goes into the application-level configuration file.
- For Advanced Cookie Processing v2.154
- New method: pWebApp.AddCookieWithSessionNumber
- Response.DoOpen allows second optional parameter v2.154
- TwhResponse.DoOpen can accept a CustomContentType for sending mime types that are not built-in (reference webPrologue.pas).
- TOnHtmlOpen event handler also adds a CustomContentType parameter.
- HaveSessionCookie no longer Boolean v2.154
- If you have custom event handler code referencing HaveSessionCookie, change
bForceNewSession := HaveSessionCookie;
bForceNewSession := (HaveSessionCookie = whsncPresent); // uses runConst
- Small fix, JUMPs in v2.154 v2.154
- Fix a small issue that was introduced in v2.154 and was a problem in JUMPs to a local ServerProfile without StreamCatcher.
- The fixed unit was whcfg_App.pas
- Small fix, new-session event handlers v2.156
- Three units changed: dmWebHub, whsample_EvtHandlers, whsample_DWSecurity
- The units now use the same code in their On New Session event handler. A CodeSite warning is sent when an
unexpected session number cookie is detected. The surfer is bounced to a new clean session number.
- DFM files confirmed compatible with Delphi XE2 Update 3 v2.156
- Reference: Delphi XE2 Update 3 release notes especially the part at the end about ModalResult
- All our DFM files had ModalResult set as 1 or 2. No changes required.
- Setup alerts you to reboot on first install v2.156
- For new installs, the Setup detects that the PATH needs changing and adjusts it. Often a reboot is required for
Delphi to notice the change. A reminder to that effect is in a dialog box for new users now.
- In /S Silent installation mode, the dialog is suppressed.
- RefreshWebActions - all of them, all at once v2.156
- Instead of calling RefreshWebActions in the Init of each datamodule and panel, you can now call it with zero parameters from
the unit containing TtpProject, once, and that will do all TwhWebAction components on all TDataModules in the application.
- For best results, use the OnStartupComplete event handler as the spot to call this, because that fires after everything
has been fully created and initialized.
- New: ToggleHighlighting(on/off) for HTML panel v2.156
- If you wish to programmatically disable the syntax highlighting (for performance reasons or otherwise) on the
HTML panel, you can call
fmAppHTML.ToggleHighlighting(False); // uses whHTML to disable it.
- Important fix for Apps that use session cookies v2.157
- In webCall.pas, this method was fixed: TwhConnection.DoExecute.
- In order to see the symptom that this fixes, two user agents are needed. One must accept the session cookie. One must
refuse the session cookie. After creating separate new sessions for each, alternating requests between the two would cause
the session number of the cookied-surfer to leak onto the no-cookie-surfer.
- This problem was in the old-ipc components only.
- Delphi XE2 with Updates 1 and 2 v2.157
- WebHub Components v2.157, v3.157, v2.158, v3.158 support Delphi XE2 with either update 1 or update 2 but not update 3.
- Session cookie expires in GMT v2.158, v3.158
- Session cookie expiration had been wrong on servers not using GMT for Windows clock.
The Hub, WebHubAdmin, ZMAdmin
- Hub.exe compiled with Delphi XE2 v2.150, v3.150
- Hub version check v3.150
- 'h' is a reserved id for extremely quick, short responses from the new-ipc hub
- ?h:vers returns the hub version digits
- ?h:pcv returns the pascal compiler code used for the new-ipc hub
- Note: the new-ipc hub does NOT contain (the overhead of) a classic HubApp
- Bug fix in Hub on-exit v2.150
- There had been a problem where the Hub.exe could hang during
hub.exe -install when the service was already installed.
- 64-Bit Hub ready to test v3.150
- To test on 64-bit, ideally you should use the new v3.1x Hub, WebHubAdmin, runisa64.dll plus WebHub applications compiled with Delphi XE2 and WebHub v3.1x for win64. Having said that, you can leave the apps as 32-bit initially, although for performance reasons you will probably want to convert them to
64-bit as soon as possible.
- For an excellent overview on 32- to 64-bit issues in Delphi, see this video from
Code Rage 6, presented by EurekaLab. Of interest to anyone trying to cross-compile between old/new Delphi plus FreePascal should be slide #11, entitled "64 bit data models - data models overview" which clarifies the sizes of integers in a matrix of compilers and platforms including Linux, MacOS, SPARC64 and Unicos.
- XSD change for Central Info v2.154
- Now using: http://static.webhub.com/xsd/cv004/WebHubCentralInfo201111.xsd
- This adds the SessionLocation feature.
- The WebHub Runtime Setup will apply this to your configuration automatically if you let it. Watch for a checkbox on an early screen
where you toggle on the runners.
- XSD change for Network Info v2.159
- Now using: http://static.webhub.com/xsd/cv004/WebHubNetworkInfo201112.xsd
- This adds the AdvancedFlags feature for each runner. Leave this field blank unless advised otherwise by tech support.
- Logging during silent install v2.156
- It is now possible to collect troubleshooting information during a silent install of WebHub.
- How-to Reference: online help
- Hub service, no error if already installed v2.156
- The as-service code detects when the service has already been installed, and skips the install (and consequent error dialog).
- ISAPI runner fix (cookie support) for certain apps v2.157
- This fix is needed in conjunction with some but not all custom WebHub applications. If you have any trouble receiving cookies
in your web browser, you should use the v2.157+ runner.
- Two tools are highly recommended for cookie troubleshooting. (1) CodeSite logging - use the debug runner that can be found
in the extra 7z archive, and turn on CodeSite. (2) Firefox with the Live HTTP Headers add-on enabled.
- NB: make sure your hosts file references an ip number other than 127.0.0.1 for any domain you want to test locally.
- WebHubAdmin reports physical CPU count v2.158
- WebHubAdmin had been reporting 1 CPU instead of counting physical CPUs.
- This is relevant for v2.1x not v3.1x.
- Setup: Reset XSD for XML files v2.158
- In silent mode, no XSD lines are changed.
- In normal mode, exceptions are caught within the ResetXSDForXML function.
- Important fix relating to session cookies v2.153, v3.153
- The symptom (e.g. in v2.152 and earlier) was that,
when session cookies were enabled, if a surfer returned with a session cookie that did not match an existing VAR file, the
surfer would be bounced repeatedly, without gaining entry to the site. This was rare but could happen with certain test conditions (e.g. deleting VAR files
between test runs) or with certain user agents storing session cookies in spite of finishing a session (i.e. disrespecting the expiration information).
- The runner now converts such session cookies from, for example, 'SESSION' to 'INVALIDS_ESSION' where the underline is Chr(183). This prevents the
application from detecting the cookie as a valid session cookie, and that prevents the endless looping.
- SENDFILE keyword v3.154
- The runner now expects the web application to provide the prologue, including corrent MIME type and cookies, when requesting that
a local file be sent. Therefore this new-ipc runner must be used with app components of the same or later version (3.154).
- Version response reports problem with ZaphodsMap root v2.154
- It is fairly easy to configure a system where the ZaphodsMap root is visible to the end-user but not to the runner.
For example, if you use the SUBST command to make a drive, and use that drive for ZaphodsMap, that will work for the end-user
on Windows 7 but never for an ISAPI DLL.
- Now as part of the version response, the runner checks whether the ZaphodsMap root "exists" from its perspective.
- A problem with the ZaphodsMap root will also stop the Hub service from starting. The error on Windows 7 may be
- Experimental: add runner critical section v2.159
- For old-ipc isapi runner only: if you set the runner AdvancedFlags to
v2cs, the runner will
use a critical section around the entire request. This will slow performance and may improve reliability on some
- Runner validates DelayMS config setting v2.159
- Values less than zero are forced to zero. Values greater than 5000 are forced to 5000.
Copyright © 2011 HREF Tools Corp. All Rights Reserved. Contact.