TigerLogic.com
Products    |    Solutions    |    Support & Services    |    Education    |    Partners    |    Corporate    |    Events    |    Contact Us

F l a s h C O N N E C T

General FAQs

  1. What is FlashCONNECT? What does FlashCONNECT cost? Where can I get a copy?
  2. What support options are available?
  3. What documentation is available?
  4. What sample programs are available?
  5. FlashCONNECT is available for which platforms?
  6. What is required of the Web Server?
  7. Where is the FlashCONNECT shareware site? (06.15.00)

Technical FAQs (Answers Below)

  1. What is the maximum number of connections allowed by FlashCONNECT?
  2. How do I determine the number of licenses to use?
  3. How do you determine the meaning of a connect or socket error message?
  4. A FlashCONNECT port dies if the FlashCONNECT program isn't catalogued when it is used.
  5. How is caching of forms allowed? Or sometimes when I go back to a FlashCONNECT generated Web page the browser presents a "Data Missing" message?
  6. If logging is turned off in the w3Logs.control file, the next process which attempts to log an entry in that log file, locks the w3Logs.control item and never releases it. All later processes attempting to access the log file hang on an item lock.
  7. After I install FlashCONNECT, the D3 programs don't start.
  8. How can I use FlashCONNECT from within JavaScript to perform pre and post field processing?
  9. How can you start FlashCONNECT as an arbitrary user?
  10. My FlashCONNECT connection dies after a period where it isn't being used.(06.15.00)
  11. What development guidelines do you have?(06.15.00)
  12. What are common administrative problems?(06.15.00)
  13. When the logon screen is displayed rather than seeing the label "User name" or "Password", "Message 19 was not found" is displayed.(06.15.00)

F L A S H C O N N E C T


1. What is the maximum number of connections allowed by FlashCONNECT?

When using FlashCONNECT, there are several points at which user limits can be reached.

  1. The maximum number of D3 licenses purchased.
  2. The maximum number of licenses supported on the D3 platform being used.
  3. The throughput of the w3Agent running on Web server.
  4. The Web server CGI throughput.

Issues 3 and 4 can be controlled by hardware/software, i.e. faster O/S, Web server, faster hardware. There is a maximum switching rate for the w3Agent, however, for small fast applications; we've pumped hundreds of connections per minute through the w3Agent.

I suspect that in most cases the application and Web server and host O/S will choke before the w3Agent chokes.


2. How do I determine the number of licenses to use?

The answer to this questions depends mostly upon how your FlashCONNECT application is designed and implemented.

For purposes of this discussion the following terms need to be defined:

  • Face time: The amount of time the user looks at a Web page before submitting the response. Included as a part of Face time is the time it takes to send and receive the Web page.
  • Processing time: The amount of time taken to generate a FlashCONNECT Web page. This time starts when FCService/w3Agent receives the FlashCONNECT request, and ends when FCService/w3Agent sends the reply back to the Web server.
  • Concurrent users: The desired number of concurrent users.
  • Fudge factor: An arbitrary amount by which to increase the number of licenses for unexpected peak use, growth, and errors in the estimate of Face and Processing time. Somewhere between 10% and 25% is a minimal value for the fudge factor.
  • Shared users: The number of users which can share one license.
  • Licenses: The number of D3 licenses required to support the specified level of concurrent users. We recommend rounding up to the next number of licenses.

For applications which exclusively use persistent connections, the number of shared users is 1. For applications which use some persistent connections, count the total time from when the persistent connection starts until it ends as processing time, regardless of the number of Web pages involved in the persistent connection.

Shared users = (Face Time + Processing Time) / Processing Time Licenses = Concurrent users/Shared Users * Fudge factor

Examples:

An average Web page takes 1 second to generate. Before replying, the user looks at the Web page for 9 seconds. Support for 100 concurrent users is needed; a 15% fudge factor is desired. Face time, 9 seconds; Processing time, 1 second; Concurrent users, 100 users/second; Fudge factor 15%; Shared users = (1+9)/1 = 10 Licenses = 100/10*1.15 = 11.5 = 12 rounded up.

An average Web page takes 2 seconds to generate. Before replying, the user looks at the Web page for 15 seconds. Support for 200 concurrent users is needed; a 10% fudge factor is desired. Face time, 15 seconds; Processing time, 2 seconds; Concurrent users, 200 users/second; Fudge factor 10%; Shared users = (2+15)/2 = 8.5 Licenses = 200/8.5*1.1 = 25.8 = 26 rounded up.

These equations are a suggestion from Raining Data and may not be applicable to your site. Raining Data assumes no responsibility for calculating the number of licenses needed for your site.


3. How do you determine the meaning of a connect or socket error message?

If logging is enabled in the w3Agent.conf file, an error message may be written to the log file. This FAQ describes how to backtrack the error code to the appropriate man page on Linux (D3 ProPlus) systems.

  1. Record the error message and error message number. The error message number is located between the < and > characters in the error message.
  2. In the /usr/include/asm/errno.h file, find the error message number.
  3. Look at the defines to the left of the error message number.
  4. If the error message is for a connect, look at the connect man page.
    If the error message is for a socket, look at the socket man page.
  5. Read the documentation about the error.

4. A FlashCONNECT port dies if the FlashCONNECT program isn't catalogued when it is used.

Problem
If the program that is being called from the browser is not cataloged in the www account, the browser hangs and evenually times-out, and the FC port is hung and must be restarted.
 
Answer
We previously discussed if we should check to make sure the program was cataloged every time it was run. Since we expect a system administrator to confirm the application works before announcing it to the public, this problem should be found and fixed before the application is released. The cost of checking the program each time it is used is too high for a setup issue.


5. How is caching of forms allowed? Or, sometimes when I go back to a FlashCONNECT generated Web page the browser presents a "Data Missing" message?

Discussion
To support state driven applications, FlashCONNECT informs the browser not to save (cache) any FlashCONNECT generated Web pages. Thus, when the user goes back to the page, it's not available in their cache. This can be a problem when writing event driven applications like Raining Data's shopping cart training application.
Solution
For FlashCONNECT releases 2.0 and after, the only change needed to enable caching of a Web page is to add an option to the w3HtmlInit API call:

For the FlashCONNECT 1.x releases, use w3HTMLPragma to change the form's pragma before using w3HTMLInit to initialize the background. For example:

Before

    * use the default pragma of Content-type: text/html:

    *                           Pragma: no-cache  

    call w3HTMLInit("demo") 

    

After

    call w3HTMLPragma("Content-type: text/html")

    call w3HTMLInit("demo")   	;* unchanged

    
Note
The 2.0 release has an option to w3HTMLInit to enable caching, however any existing code using the above features will continue to work.


6. If logging is turned off in the w3Logs.control file, the next process which attempts to log an entry in that log file, locks the w3Logs.control item and never releases it. All later processes attempting to access the log file hang on an item lock.

Work around
Rather than turning logging off, set the maximum number of entries to 1.
 
Solution
Make the following change to the w3Log program in the wbp file:
Line:
59 if control.item<3> = "N" then return ;* nasty and brutial
	Changes to:

		163 if control.item<3> = "N" then 
 
		164    release f.log, filename   ;* [05]

		165    return ;* nasty and brutal

		166 end


7. After I install FlashCONNECT the D3 programs don't start.

This problem has several causes:

Cause 1: Failure to update the www account md after doing the account-restore and before logging to the www account for the first time.

Symptom 1: The w3Logs,FlashCONNECT file does not exist after starting FlashCONNECT for the first time and "create-file w3Logs,FlashCONNECT 13" from the www account doesn't work.

Solution 1: Reinstall the www account, remembering to run "update-md www (n" after the restore and before the first time logging into the account.
Cause 2: FlashCONNECT is not activated.

Symptom 2: www-status shows an appropriate message. If the entire message isn't available, just use the instruction "ct w3ines" from the www account to see the entire message.

Solution 2: Purchase a copy of FlashCONNECT and activate the product, or obtain a temporary demonstration FlashCONNECT activation.

Cause 3: Insufficient D3 licenses.

Symptom 3: www-status shows an appropriate message. If the entire message isn't available, just use the instruction "ct w3ines" from the www account to see the entire message.

Solution 3: Purchase additional D3 licenses or obtain a temporary increase while you evaluate FlashCONNECT.


8. How can I use FlashCONNECT from within JavaScript to perform pre and post field processing?

The following line of JavaScript shows running a FlashCONNECT application and optioning the results from JavaScript. A line such as this can be embedded within JavaScript methods and used as needed within a Web page.


9. How can you start FlashCONNECT as an arbitrary user?

The following program starts a child program as phantom running in a specified account as a specified user, then runs a specified command.

Usage: parent-program data

Parent program:

tclread indata

* Extract the first word which is the name
* of this program

indata = trim(indata)
word2start = index(indata, " ", 1) + 1

* Data follows this program name
indata = indata[word2start, 999999999]

* set up the user and account to use
user ="DM"
userpass=""
acct ="WWW"
acctpass=""
cmd = "test ":indata
line = ""

* set up the phantom start command
* pass in the user and account name and password

data user
data userpass
data acct
data acctpass
data cmd
data line
data ""
execute "z"

Program called test which exists in the target
account and is run there
the first word is this program's name

tclread indata
indata = trim(indata)

* data follows the program name
word2Start = index(indata, " ", 1) + 1
indata = indata[word2Start, 999999999999999]

cmd = "msg jack run from ":@account:" as ":@user:" data
":indata
execute cmd


10: My FlashCONNECT connection dies after a period where it isn't being used.

All reported instances of this problem have been related to one or more the following:

Some cleanup process on a Unix Web server is deleting the named pipes in /tmp.

A timeout setting in a firewall located between D3 and the Web server is killing the connections.

The D3 or Web server is being rebooted.


11. What development guidelines do you have?

While we cannot provide design information specific to any application, the following comments are available.

General comments:

  • Use FlashCONNECT release 2.1 or better because of the w3HtmlInsertSection and nested template features makes it easier to work with full screen HTML editors like Dreamweaver and FrontPage.

Web page design comments:

  • HTML goes in templates - not in the code.
  • One designer uses the technique of creating prototypes of my HTML pages, including using dummy data so the layout can be seen. Then hardcoded references to dynamic data are replaced with #unique# references. Many design issues are identified and resolved when looking at a page that resembles the final product. This process helps resolve Web page design issues before coding starts.
Sample Error Message Handling Technique:
Name
Display the Error Message Here!Name

Program design comments:

  • Isolate your business rules from display logic. The programs which know about FlashCONNECT call subroutines which implement the business rules. The business rules should be unaware as to how the information will be presented. The FlashCONNECT programs should know nothing about file layout.
  • Create customized extensions to the FlashCONNECT API for building common HTML code segments.
  • Modularize the code that builds various segments of a web page. A single program that builds an entire page can get a little unwieldy at times, and debugging smaller routines is much easier.
  • While technically persistent connections work fine, they do tie up a license, so avoid persistence (using w3Input) unless it is required.
  • Try to design an application so inbound requests have a common entry point, or at least a minimum number of entry points (w3Apps entries). Doing so allows easy implementation of security and it also helps in cases where the user shouldn't execute program B unless they first execute A. This allows centralization of the navigation logic into the common routine instead of cluttering the application with this sort of housekeeping.

For more assistance:

  • Contact your VAR or Raining Data sales representative to inquire about obtaining assistance from Raining Data Professional Services.


12. What are common administrative problems?

The most common problems can be resolved by:


13. When the logon screen is displayed rather than seeing the label "User name" or "Password", "Message 19 was not found" is displayed.

Most of the messages displayed by FlashCONNECT are read from the system Messages files. When FlashCONNECT is installed these messages are copied from the w3Messages file to the system Messages file. For the FlashCONNECT 1.1, 1.2, 2.0, and 2.1 releases, this can be done manually by running the following commands from TCL in the www account:

D3 Unix releases:

D3 NT releases:

FlashCONNECT
Introduction
Product Information
Online Documentation & Downloads
FAQs
Reference Manual
mvDesigner
Copyright 2008. TigerLogic. All Rights Reserved