Comet Meeting -- October 12, 2010 - Meeting Minutes

From CometWiki

(Difference between revisions)
Jump to: navigation, search
(CometConnect and Disaster Recovery)
m (better explanation of extended keyed files.)
 
Line 142: Line 142:
Introduction of the Comet32 Timer and Crypto statements.  Robert reported compatiblity problems using AEP variations with mySQL.
Introduction of the Comet32 Timer and Crypto statements.  Robert reported compatiblity problems using AEP variations with mySQL.
-
Discussion about confusion between extended keyed files and multi-keyed files.  Simply, all multi-keyed files are extended keyed files, but extended keyed files are not necessarily multi-keyed.
+
Discussion about confusion between extended keyed files and multi-keyed files.   
 +
 
 +
Simply, all multi-keyed files are extended keyed files, but extended keyed files are not necessarily multi-keyed.
 +
 
 +
Comet legacy keyed files get into a problem when they reach a size of 4.2 GB. That is the point where a double word (4 byte) pointer cycles from 0xffffffff to 0. These pointers are attached to every key in the I00 file. Older Comet releases did not detect this situation and just "wrapped" the file back to zero and continued on. More recent Comet systems (2008? 2009?) detect this situation and produce an error.
 +
 
 +
The very simple solution to this is to copy the file to an EXTENDED key file. An Extended keyed file is not necessarily a multi-keyed file. It must have the key in the record, however. To convert a keyed file to an extended keyed file, you do NOT have to modify your programs in any way. Just copy the file, that is all.
 +
 
 +
Now, let's say the legacy keyed file's records did not contain the key. Bad form, I know, but Comet takes care of that for you as well. Just specify that the key is beyond the current record of the file when creating the extended keyed file. All of your current programs perform writes containing the key= clause, right? Well, Comet will automatically copy that key to your record before writing it, even though you never specified that field in your format statement.
 +
 
 +
Of course, the best way to treat extended keyed files is to include the key in your record format and eliminate all of those (now extraneous) key= clauses. But you really don't have to do that.
 +
 
 +
The file size limit of an extended keyed file is 0xffffffffffffffff bytes, or 18,446,744,073,709,551,615 bytes. I don't know the nomenclature for that, but I think it is beyond Tera.
*http://wiki.signature.net/index.php/IB_Statements/create
*http://wiki.signature.net/index.php/IB_Statements/create
*http://wiki.signature.net/index.php/IB_Statements/open
*http://wiki.signature.net/index.php/IB_Statements/open

Latest revision as of 15:27, 23 November 2010

Contents

Comet Meeting -- October 12, 2010

Support Forum and Wiki

Both could use improvements. Wiki is incomplete copy of original documentation. Needs attention. Forum would be more useful if items could be grouped by topic.

Users also would like to be able to edit their own posts. And everyone agreed that the forum should be used only to discuss topics directly related to the Comet community.

Comet32 vs Comet16 Confusion

Clarification of when Comet32 must/may be used:

  • Comet32 is required for running a full Comet client on 64-bit version of Windows.
  • Comet32 may be run on any Windows system running Windows 2000 or newer.
  • CometAnywhere clients running on 64-bit Windows can run even if the CA host is running Comet16.
  • You can mix Comet16 clients with Comet32 clients on the same network.
  • Comet32 can run your Comet16 IB object files as long as you're not using any unsupported features. You only need to compile for Comet32 if you want to use any of the new IB features. *Comet32 IB objects cannot run under Comet16.

Comet32 Concerns

Instead of background partitions you can use hidden foreground sessions. Use the /Keyfile command line argument to specify a keystroke file to log the user in to Comet and run a specific program. These hidden sessions are configured just like normal sessions in your .ini file.

Kumquat and PDF have several customers that rely on ODBC to interface with UPS/FedEx WorldShip and they were concerned that Comet32 won't allow this. Someone pointed out that WorldShip works with mySQL which is the ODBC replacement in Comet32.


Comet Installation and Configuration

Since we converted to VS 2008 we have problems installing on some systems because of missing .dlls from Microsoft which are now required for the various Comet modules. The solution is to run Microsoft's Visual C++ 2008 SP1 Redistributable on each Comet client. Here's a link to their download page: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=a5c84275-3b97-4ab7-a40d-3802b2af5fc2&displaylang=en Because of UAC someone with admin rights will need to run this one time on each client, either on-site or via a remote desktop connection. Note: there are both 32-bit (x86) and 64-bit versions of the redistributable. The 32-bit version is sufficient even if the client is running a 64-bit version of Windows.

Also discussed problem of reqistering Comet files to the administrator's temp folder instead of the intended user's temp folder.

We will also consider buying a digital code signing certificate from Verisign to prevent warning message when running Comet.

Request to change automatic placement of CosW.ini file such that if it is not found in the user's private local folder Comet should look first in the AllUsers folder then in Windows. If found then copy it to the user's private local folder. How are we setting colors for the user if no CosW.ini is found??

For those trying to run Comet16 in XP compatibility mode on Windows 7 it was pointed out that this requires at least Windows 7 Professional. It will not work on Windows 7 Premium.

Request to rename the server UIs to names beginning with "C" so they are grouped alphabetically with all other Comet executables in Task Manager / Windows Explorer. (ie SecSrvUI -> CSecSrvUI, FileSrvUI -> CFileSrvUI)

Request for option to delete all existing .cfg files if SYSGEN was successful. This would eliminate obsolete configurations from the server so they couldn't mistakenly be used by someone.

Request to make DAB numbers optional in the .ini file. They really are only necessary if you're trying to override a global directory configuration with a local one.

There was discussion about whether we should wait to consume the CA licenses until the CA client actually connects rather then when the CA host connects. It was pointed out that if load balancing is done between CA hosts then this is not necessary. Load balancing can be done by IP address using a firewall and/or load balancing software.

.CSV Files

Tom requested that .csv files created by the Reporter use the column heading info from the data dictionary rather than the field name for the header record in the .csv file. He recalls that the .d00 version of the Reporter did this while the #CFILES version does not.

There were requests to be able to specify the delimiter character used by Comet when creating .csv files. If this is done it will be a feature of Comet32 only.


DocMgr

Populating the listcontrol takes too long for large archives.

Request for a way to limit which users have delete privileges for archive documents.

Request was made for a way to programmatically print DocMgr documents - perhaps using ShellExecute with the appropriate print command line argument?

Request was made for a qspool-like auto-unspool option.

Request for use of PDFCreator from SourceForge as an alternative to either Adobe or PDF Factory.

Stan talked about using MDaemon Email Server along with shareware program, Mail Converter, to package up email and attachments into .pdf docs:

How to Get a System Dump if Comet Crashes

If you're running a version of Windows older than Server 2008 / Vista you will use either DrWatson.exe or DrWtsn32.exe depending on which Comet executable is crashing. For CosH.exe, which is a 16-bit program, use DrWatson.exe. Add it to your Windows Startup Folder so it loads automatically. Look for dumps under the Windows folder. Note: You need to recover the Dr Watson dump file before dismissing the Microsoft dialog that asks if you want to send the dump to Microsoft or else the dump file may be deleted. Send the .dmp file to us.

For all other Comet executables (ie CosP, CosC, CosW, the Servers) use DrWtsn32.exe. It has a UI that lets you configure the location of the dumps. It may generate several versions of the dump. The "minidump" is adequate.

If you're running a newer version of Windows you'll need to use Windows Error Reporting (WER) unless it is CosH that's crashing. WER is not enabled by default. You need to modify the registry setting to it on: http://msdn.microsoft.com/en-us/library/bb787181%28VS.85%29.aspx It was suggested that perhaps we should provide a program that will do the registry mod via a .reg file. If it's CosH crashing on a newer 32-bit version of Windows you'll use DrWatson.exe as above.

One other way to get a dump in XP is to force it by process id from a DOS command line prompt. For DrWtsn32 you'd type: drwtsn32 -p [process id] You can get the process id from Windows Task Manager.


Comet Transaction Logging

Request that Comet keep a log of Comet activity such as which user ran which program at what time. This may be a Comet32 feature. Currently we don't have the user's ID. Perhaps we could pass the CAID along.

The Transaction Backup project was also discussed. This is still in the design stages. The intent is to record every write done by the server and offer playback capability. Robert says he needs to track all READs also for PCI conformity.

Discussion about how to make QCRT (text-based) screens look nicer

  • by making proportional font columns line up better
  • by making entry fields look more like edit controls with a client edge (for 3D look)
  • make easier way to add wallpaper and images in the background
  • use a delimiter character to indicate the beginning of a field

CometConnect and Disaster Recovery

Original server is in Northern California. We're looking in to adding a second server in the mid-West.

CA encryption is done using Blowfish on all TCP/IP communication between CosC and CosW. The Disaster Recovery backup file can be encrypted as an option as well.

XAP

Comet32 will have XAP2. Currently every request initiates a new proigram instance. XAP2 will keep the program alive even after sending data and wait for the next request. This will make the programming concept more like QCRT programming. There was some concern that keeping the parition alive may cause the XAP server to run out of memory on very active systems. We will need a timeout so the program eventually terminates if the browser goes away.

Request to enhance MERGE so that it can handle text files.

Request to be able to clear the XAP log while XAP is active. We could add a control to cycle the log.

Question: Does the partition go away in current XAP when LUN 0 is closed or does your program have to issue STOP?


Comet Fax and Email

FaxMan Jr. currently being used doesn't work with Vista and newer versions of Windows. We won't be providing a replacement. Instead we recommend using a service such as eFax to fax via email.

Request to use MAPI rather than SMTP to send email.


IB

Review of Comet32 procs: http://wiki.signature.net/index.php/IB_Statements/UserDefinedProcs

Review of the "new" input statement that eliminates the need for transmit marks: http://signature.net/ib/input2.htm

Discussion of Ask .dll in the Code Library. This is a simple edit box dialog you can use to ask the user one simple question: http://codelibrary.signature.net/messages/31.shtml (the Comet16 version) http://codelibrary.signature.net/messages/32.shtml (the Comet32 version using a proc)

It was reported that SET statements used to declare a numeric variable's length and precision don't work for precision greater than zero or for negative values.

Request for date and boolean data types.

Discussion of how blank stripping / padding is done on I/O. Suggestion was made for new IB verbs like INSTRIP, OUTSTRIP, INPAD, OUTPAD to choose how it's done.

Introduction of the Comet32 Timer and Crypto statements. Robert reported compatiblity problems using AEP variations with mySQL.

Discussion about confusion between extended keyed files and multi-keyed files.

Simply, all multi-keyed files are extended keyed files, but extended keyed files are not necessarily multi-keyed.

Comet legacy keyed files get into a problem when they reach a size of 4.2 GB. That is the point where a double word (4 byte) pointer cycles from 0xffffffff to 0. These pointers are attached to every key in the I00 file. Older Comet releases did not detect this situation and just "wrapped" the file back to zero and continued on. More recent Comet systems (2008? 2009?) detect this situation and produce an error.

The very simple solution to this is to copy the file to an EXTENDED key file. An Extended keyed file is not necessarily a multi-keyed file. It must have the key in the record, however. To convert a keyed file to an extended keyed file, you do NOT have to modify your programs in any way. Just copy the file, that is all.

Now, let's say the legacy keyed file's records did not contain the key. Bad form, I know, but Comet takes care of that for you as well. Just specify that the key is beyond the current record of the file when creating the extended keyed file. All of your current programs perform writes containing the key= clause, right? Well, Comet will automatically copy that key to your record before writing it, even though you never specified that field in your format statement.

Of course, the best way to treat extended keyed files is to include the key in your record format and eliminate all of those (now extraneous) key= clauses. But you really don't have to do that.

The file size limit of an extended keyed file is 0xffffffffffffffff bytes, or 18,446,744,073,709,551,615 bytes. I don't know the nomenclature for that, but I think it is beyond Tera.

Miscellaneous Requests

Request to have CosC detect that it is running on a 64-bit system and automatically run Comet32 even if the /32 is not included on the command line.

Jerry from DGR requested a way to be able to get messages back to IB program from external apps via COM interface and mentioned very slow printing when done from CA clients.

Request to be able to broadcast messages to all users on the Comet network. Maybe something like CNSAdmin could do this?

Steve requested a new CometExplorer utility that uses SearchFile.

Request for Comet File Server on Linux.


A couple of off-line discussions

Steve Hagen requested a Comet interface to a scanner that would allow scanned images to be added to a DocMgr archive.

Jeff requested shortcut methods for using the CometExplorer utilities without having to wait for the directory catalog of files to load. For example, a keyboard command to quickly rename a file.


Location for next year's meeting

New Orleans and Chicago were the most popular suggestions with Denver and Portland getting honorable mention.

Personal tools