Galaxy Communicator Documentation:

Frequently Asked Questions


We intend to expand this FAQ considerably, as people start asking us more questions :-). The questions below are a rough beginning.


Installation

"When I type 'make', it fails with an error like 'Unexpected end of line seen'.

Be sure you're using GNU make. Try "make -v" to confirm that it's GNU make. GNU make will print out the version; other makes will probably not even recognize the -v flag.

"I'm trying to build a server in my own directory, using the MIT Makefile template, but make can't find the paths."

In order to compile a server outside the MIT directory stack, be sure you do the following in your Makefile, at the top:

# Modify this to point to the package root directory

ROOT_DIR = <root of Communicator>

# Need these to provide something useful for MIT rules.make.

TEMPLATES = $(ROOT_DIR)/templates

This will establish the appropriate context for the compilation.

"I want to use the Python/Java/Allegro servers, but when I compile the contrib/MITRE/ subdirectory, the Python/Java/Allegro servers aren't created."

Check templates/<arch>-<os>/config.make to see if the appropriate language binding variables are uncommented and correct.

"I want to use the database/TrueTalk server, but it isn't compiled in the default installation."

Check templates/<arch>-<os>/config.make to make sure that you've created the appropriate settings for the appropriate Oracle or TrueTalk libraries.


Server and Hub setup

"My server won't start up on the port I request."

The servers are configured to search for the first available port. Most likely, the port you requested is already in use. If you want to force the server to start up on the request port or fail, use -assert as an argument to the server.

"I've started up my server, but the Hub can't find it."

Make sure the Hub is looking for the server on the appropriate port, and that the server started up on the same port.

"I want to read some of the Hub output in the process monitor, but my Hub window keeps scrolling back to the bottom."

MITRE provides a process monitor to aid in controlling processes. Each pane of the process monitor has a "Pause" button which pauses the output. Normally, the Hub prints out a pacifier character every second when it's not receiving messages. So in order to review the Hub output you must press the "Pause" button, or restart the Hub with the -suppress_pacifier command line directive.


Brokering

"I've set up a callback for my incoming broker to do something when it's done, but it's never doing anything."

First, make sure that your outgoing broker is calling GalIO_BrokerDataOutDone. If it doesn't, the incoming broker will never run the appropriate callbacks. Second, make sure you call GalIO_SetBrokerActive on the incoming broker. If you don't, the broker will never read from its connection.


MIT Hub scripting

"I wanted my program to loop forever, so I made a single rule with identical IN: and OUT: variable lists, but it exits after a single iteration."

There is no looping construct in the Hub scripting language. Execution resumes at the point where the message returns. Your program terminated because there were no following rules. If you want to simulate an infinite loop, you must do it by tail recursion: introduce a new message for each "iteration". See the double server example.

"Rules that shouldn't be firing are firing when the Hub starts up."

There's probably something in your initial token which is causing the rules to fire. Customize either the rules or the initial token to rule out the offending condition.
 
 


Please send comments and suggestions to: bugs-darpacomm@linus.mitre.org
Last updated August 21, 2001.

Copyright (c) 1998 - 2001
The MITRE Corporation
ALL RIGHTS RESERVED