Technical FAQs

Ask a Question

How To Add Constraints To A Dialout Modem

Goals and Symptoms

Use the following steps to constrain a particular modem such that it is only used with specific sites.

Causes and Fixes

* In the Management Console, view the Sites window (Properties tab).
* Highlight a modem site of interest.
* Right-click the ‘Sites’ heading at the top of the window and choose View Field > ID from the pop-up menu. The ID number for the site will be displayed in a dialog.
* Record the ID number for the site and close the dialog.
* View the Dialout Modems window (Properties tab).
* Double-click on the dialout modem of interest.
* On the Dialout Modem Options dialog, enter a value in the Constraints field. Constraints may be of the following formats, in which <ID number> is the ID number of the modem site:

WHERE port.ID IN (<ID number>)
WHERE port.ID NOT IN (<ID number>)
WHERE port.ID = <ID number>
WHERE port.ID <> <ID number>


To reference multiple sites, use a comma-separated list the ID numbers for each site – for example:
WHERE port.ID IN (1, 2, 3)


Additional Information Note: stever: 2002-08-04 2:29:16 PM: TERMINOLOGY

Channel    -- a local COM port (with or without a modem)
Data Server -- the collection of channels managed by a single siteserver process
Port -- roughly equivalent to a site (a collection of meters on the same wire)


Modem pooling is handled by the ConnectionManager.    The ConnectionManager will look at the constraints placed on a local modem and decide whether or not it can be used to dial up a remote modem site.    

Constraints can be placed on a channel or on the entire data server by inserting a well formed SQL fragment into the Constraints column of either the Channel or DataServer table. The SQL fragment can be any valid SQL that can be executed as part of the following statement:

SELECT 1 FROM Gate JOIN Port ON Port.ID=portID constaints

where portID is the ID from the Port table of the port in question and constraints is the SQL fragment from the Channel or DataServer table.    If the query returns any rows, the port is considered to be routable via the channel or data server in question.    If it does not, it is not routable.    If the constraints are invalid, the channel (or data server) is disabled and will not be used again until the constraints are fixed.


As an example, consider a system with two local modems and three remote sites.    The Channel and Port tables contain the following records:

Port Table
ID: 22
* Name: Remote Site 1
ID: 23
* Name: Remote Site 2
ID: 24
* Name: Remote Site 3

Channel Table
ID: 1
* EntityClassID: 19 (modem)
* Address: COM1
* Type: 1 (Brand X)
* Constraints: “WHERE port.ID IN (22,23)”
ID: 2
* EntityClassID: 19 (modem)
* Address: COM2
* Type: 2 (Brand Y)
* Constraints: “WHERE port.ID <> 22”

This means that the local modem on COM1 can only connect to Remote Site 1 and Remote Site 2 but not Remote Site 3. The local modem on COM2 can connect to Remote Site 2, Remote Site 3, and any new remote site added to the system but it cannot connect to Remote Site 1.

In most cases, constraints will be simple lists, either ‘IN’ or ‘NOT IN’.    It is possible to construct much more complicated constraints.

Adding constraints can affect system performance so they should be used only as necessary.'

Original article#9583, SWKB-0065

Was this helpful?
What can we do to improve the information ?