This appendix provides problem-solving procedures:
You can view network activity to help facilitate how to troubleshoot problems with the operating system.
You can also change the console key from PrintScreen to another key by setting a JavaOS property. See Chapter 9, Setting JavaOS Properties for details.
To open the JavaOS console window from the JavaStation client, wait until the star-field screen is displayed.
Press the print screen key.
The JavaOS console window displays the network activity.
Table D-1 describes tips related to the JavaOS and Table D-2 describes boot problems and their solutions.
Table D-1 Tips
Tip |
Description |
---|---|
Disabling the "flash-prom" update prompt. |
Change the javaos.alwaysUpdate property. The default value is null.
Note, that if the DHCP checksum is not present or is zero, the flash is not updated. See Chapter 9, Setting JavaOS Properties , for additional information. |
Table D-2 Boot Problemsand Suggested Actions
Problem |
Solution |
---|---|
After typing boot net/javaos on a SPARCstation, the following message is displayed: Timeout waiting for ARP/RARP packet |
The rarpd daemon on the server is not responding. On the server, type ps -cfe | grep rarpd to verify the daemon is running.
Verify that there is an entry in the /etc/ethers and /etc/hosts files on the server for the client. Also make sure that the /etc/nsswitch.conf file on the server looks at the local copy of the /etc/ethers and /etc/hosts files before looking at the NIS copies. |
After booting JavaOS over the net, messages indicate that the booter is unable to mount the root file system.
|
Make sure the /etc/bootparams file has the correct information for the JavaOS client root file system. It should be the directory that contains the JavaOS binary on the server. The contents should look something like: cuesta root=capo:/tftpboot/cuesta where cuesta is the name of the JavaOS client and capo is the name of the server. The /tftpboot/cuesta directory contains the JavaOS binary. Type ps -cfe | grep bootparamd to verify the bootparamd daemon is running. If it is not, type: /usr/sbin/rpc.bootparamd. Verify the client's root directory is exported over NFS by typing share. The directory containing the client's JavaOS binary (for example, /tftpboot/cuesta) should be in the output. If it is not, you need to update /etc/dfs/dfstab and then type shareall. |
After booting JavaOS, the screen goes blank and nothing happens. |
There are a number of reasons this could happen. The most likely reasons include incompatible network and graphics adapters. |
After booting JavaOS, the screen shows twinkling stars or a watch but no login window.
|
This is due to a misconfigured or missing DHCP server. Click on the print screen key to display the JavaOS console to view network activity. |
JavaOS will not boot. |
Use snoop(1M) to view network activity. For more information regarding snoop, type man snoop on any Solaris machine. In addition, you can click on the print screen key to display the JavaOS console to view network activity. |
The following message is displayed: date bootserver in.dhcpd[pid]: (Error 0) No more IP address for subnet network |
No action is required. This is an informational message from /usr/lib/inet/in.dhcpd that is displayed in the console window of the boot server when the JavaStation is powered on or rebooted. |
Table D-3 describes name service error messages.
Table D-3 Name Service Error Messages
Message |
Action |
---|---|
DNS domain name is empty Host name field is empty |
Specify a DNS domain name or host name |
Invalid DNS server IP address Invalid IP address Invalid subnet mask Invalid router IP address |
IP addresses must be in the form "xxx.xxx.xxx.xxx" where x is a number between 0 and 255. Type man inet for more information. Hex values are also acceptable. |
Host name already exists IP address already exists Ethernet address already exists |
Each client must have a unique host name, Ethernet address, and IP address. Enter a different value. |
Invalid ethernet address
|
Ethernet addresses must be in the form "xx:xx:xx:xx:xx:xx," where xx is a hexadecimal number separated by colons. |
This section lists some of the known problems with the HotJava Views software.
HotJava Views 1.1 requires a minimum of 32 Mbytes of memory to run on a JavaStation.
There may be intermittent problems when running against a loaded JavaStation HTTP server.
The selector desktop configuration file (selector.desktop) has changed. Applications are now in the selector.apps file. The selector.desktop file now refers only to the name of applications that are defined in selector.apps.
CalendarView works best with the CDE calendar server. The feature of storing mail messages with appointments is available only for data version 4 format calendars. This format is supported by the CDE calendar server. The OpenWindows calendar server does not support data version 4 format.
On JavaStation systems, the right mouse button does not currently generate events to applets and applications. For this reason, MailView functionality in pop-up menus activated by the right mouse button are not available. This primarily affects folder management in the tree display in the upper left corner, and in attachments.
make sure that when the JavaStation clients are installed, there are proper entries in DNS for each client system. If the JavaStation client is not in the DNS maps, the user may not be able to send mail.
Temporary file space in /var/tmp can become full, causing append commands to fail. This may occur when large mail messages are sent, and the user gets an "Unable to send" error notice. More space is required in /var/tmp to resolve this issue.
Use of the HotJava Views Administration facility requires a fully JDK 1.1-compliant browser. Both HotJava Views 1.1 WebView and HotJava Browser 1.1 (currently in beta) are JDK 1.1-compliant. Other browsers may not yet be fully JDK 1.1-compliant. For example, Netscape Navigator Version 3.x supports only JDK 1.0.2 and Netscape Navigator Version 4.x supports only a subset of JDK 1.1.
The administration facility is applicable only when configuring HotJava Views installed on the HTTP server that is used to deliver Views applets and configuration files.
Use a web browser to verify all URLs specified in /var/dhcp/dhcptab and in the javaosopts.txt file.
Run snoop(1M) and watch the packets to and from the JavaStation.
Early access versions of Views improperly saved properties into ~/.jdt.
See the README files in /opt/SUNWjdt/doc for each component.
Refer to the following Solaris man pages: dhcp(4), dhcp_network(4), dhcpconfig(1M), dhcptab(4), dhtadm(4), pntadm(4), in.dhcpd(1M), snoop(1M)
To update the "About" button, you'll need to edit the lib/html/welcome/welcomeAbout.html file.
To change the alias associated with the "Feedback" button, you'll need to update the selector.props property for each group configuration.
CalendarView works best with the Common Desktop Environment (CDE) calendar server. The feature of storing mail messages with appointments is available only for calendars in the data version 4 format. This format is supported by the CDE calendar server. The OpenWindows calendar server does not support the data version 4 format.
To find out whether the CDE calendar server is running on a particular machine, as superuser, type:
# /usr/dt/bin/sdtcm_admin -l -h name-of-machine-to-check
If the sdtcm_admin command returns a list of calendar names, the CDE calendar server is running on that machine. Otherwise, the command returns the following message:
# /usr/dt/bin/sdtcm_admin: Could not list calendars because: Service is unavailable.
The CDE calendar server is available in the SUNWdtdmn package.
When an appointment is scheduled through MailView, the mail message containing the appointment is saved in the login user's calendar mailbox and a reference to the saved mail message is stored with the appointment. This feature is not available for calendars in the OpenWindows calendar format, data version 3 or less. This is a limitation of the data version 3 (or less) format.
You can use the /usr/dt/bin/sdtcm_convert calendar conversion utility to convert data version 3 calendars to data version 4 format. Refer to the sdtcm_convert man page for details.
The Additional Permissions list within the Properties dialog may contain login IDs instead of complete names (for example, joes may be displayed instead of Joe Smith). This can occur if the user's calendar is in the OpenWindows data format or if the entry was added using calendar clients other than CalendarView. If the calendar is in the OpenWindows data format, use the /usr/dt/bin/sdtcm_convert utility to convert it to data version 4 format. Refer to the sdtcm_convert man page. Otherwise, use only CalendarView to add editors.
For editable calendars, clicking within an empty time slot will create a new 1-hour appointment in that time slot. There may be a significant delay in refreshing the view. If you did not intend to create a new appointment, delete it by clicking the Delete button in the CalendarView detail area.
To demonstrate automatic update, you need two calendar clients (two CalendarView or CalendarView and dtcm).
It may be useful to capture output from the Namesvc proxy to a file. This can be enabled by editing /opt/SUNWjdt/cgi-bin/namesvc. Comment the line:
# $JAVA_HOME/bin/java sunw.jdt.dex.server.Namesvc
# $JAVA_HOME/bin/java sunw.jdt.dex.server.Namesvc [boxv ] tee /tmp dex.last
If you perform a search and this file doesn't get created or updated, then chances are your httpd server is having problems launching the cgi-bin script. If the output in the file indicates some type of error:
Content-type: text/plain <DBError>:6
then the database probably couldn't be found or the permissions on the file are not set correctly. Make sure the database files have read access for world.
If you have enabled capturing output to /tmp/dex.last and this file isn't being updated, then it might be worth checking the httpd server error log file. This may indicate that there was some sort of cgi-bin error. The server may not be configured to run cgi scripts or maybe it couldn't find the namesvc script.
Make sure the database files you have created have read access set for world (chmod 664).
The 1.1 back end is not compatible with 1.0 clients. If you need to support both 1.1 and 1.0 clients, you have several choices. The easiest way to handle this is to install the 1.1 back end on a different server than the 1.0 back end. In this configuration you simply follow the steps that have already been outlined above. If you want to support 1.1 and 1.0 clients from the same server, follow these instructions:
Install 1.1 on the server but do not install it on top of your 1.0 installation. Put 1.1 under /opt/SUNWjdt1.1 or something similar.
In your web server cgi-bin directory make a symbolic link from webserver/cgi-bin/jdt1.1 to /opt/SUNWjdtd1.1/cgi-bin.
Edit the namesvc file in /opt/SUNWjdtd1.1/cgi-bin. Change the JDT_HOME environment variable from /opt/SUNWjdt to /opt/SUNWjdt1.1.
Edit /opt/SUNWjdt1.1/lib/props/standard/nameview.props. Change the value of the dex.db.cgi.proxy property to /cgi-bin/jdt1.1/namesvc.2.0.
Edit /opt/SUNWjdt1.1/lib/props/namesvc.props to point to your database.
This release of HotJava Views has an error message logging capability that is used most extensively by NameView. If you want to enable this capability, use the following procedure on the system running your web server.
Assuming you have installed HotJava Views in /opt/SUNWjdt, make a symbolic link called jdt from within your httpd server's cgi-bin directory (this location will vary among servers) to /opt/SUNWjdt/cgi-bin.
For example, if you are running the Apache server, you can use the following commands:
# pwd # /opt/WWW/Apache/httpd/cgi-bin Your httpd server's cgi-bin dir # ln -s /opt/SUNWjdt/cgi-bin ./jdt # ls jdt # getidsvc.2.0 jdtlogsvc namesvc.2.0
Some web servers require that you explicitly turn on cgi-bin support before cgi-bin scripts can be executed. Refer to your httpd server's documentation to determine your server's requirements.
Edit the /etc/syslog.conf file and add the following line:
# local0.info /var/opt/SUNWjdt/jdt.log
Make sure that you use tabs, not the spaces between the values.
Create /var/opt/SUNWjdt/jdt.log and modify its permissions:
# mkdir /var/opt/SUNWjdt # touch /var/opt/SUNWjdt/jdt.log # chmod 666 /var/opt/SUNWjdt/jdt.log
# kill -HUP `cat /etc/syslog.pid
HotJava Views uses CGI to send error messages to the jdtlogsvc script on your web server. The jdtlogsvc script uses syslog to log the errors.
Message/ Problem |
Action |
---|---|
JavaOS 1.1 boots OK, but upon login, the heap viewer applet displays instead of Views. |
The alternate main parameters are not getting passed to JavaOS. Make sure you have specified the correct URL in the -i option in /var/dhcp/dhcptab. Use a web browser to verify the URL. Make sure the javaos.mainProgram, javaos.mainZip and javaos.mainHomeprop parameters are correctly specified in the javaosopt.txt file. Use the -i URL indirection. Make sure you have sent a SIGHUP to in.dhcpd if you have changed the /var/dhcp/dhcptab file. |
JavaOS 1.1 boots OK, but upon login, a blue screen displays instead of Views. |
JavaOS has received the alternate main parameters, but they are incorrect. Make sure javaos.mainProgram and javaos.mainZip are specified correctly in the javaosopt.txt file. Verify the URLs are correct by using a web browser. |
class not found/defined error |
This error is common if you are using the JavaServer(TM) server. Servers may fail to handle HTTP requests. If this happens when Views is trying to load a class file, you get a class not found/defined error. Try using the Apache or Netscape server to correct this problem. |
Tables do not parse well in WebView. |
The .jdt/props/selector.props files may contain invalid entries for class names that handle HTML tags. Check your selector.props file for entries that specify classes that start with sun.hotjava . If you find such entries, move your .jdt/props/selector.props file aside (don't forget to reset your proxies). |
After modifying Appointment Reminder properties within the Properties dialog, the appointment reminder types (Post Notice and /or Ring Bell) do not match the property value settings. |
Restart Selector for the new property setting to take effect. |
Several (or many) reminders are posted for a single appointment. |
Chances are your calendar file is in an older format, and/or your workstation has a different time than your calendar server. Update your calendar file and sync your workstation clock with the server's clock. |
No reminders are displayed for appointments inserted through Month view. |
After inserting appointments in Month view, perform an action that reloads your calendar, such as changing the month you're viewing or switching to Day view or Week view. |
Closing the Mail Login dialog in Calendarview can cause HotJava Views to lock up. |
Don't close the Mail Login dialog using the window menu. Use the Login and Cancel buttons to close the dialog. |
HotJava Views complains about not being able to mount my home directory. |
JavaOS mounts your home directory when you log in. It gets the location of your home directory from the passwd and auto.home NIS maps. Make sure these maps are correct and that your home directory is properly exported so the JavaStation can mount it. You can run snoop(1M) and watch for the MOUNT request that happens after you log into JavaOS. |
snoop(1M) doesn't show all the packets from the JavaStation. |
You may be on a switched network. In this case, packets from the JavaStation may not be visible to the system on which you are running snoop. The best way to make sure you see all packets is to plug the JavaStation and your Solaris system into a mini-hub and run snoop etherid for javastation. |
Table D-5 describes HotJava Views error messages and known problems.
nown problems.
GO-Joe provides several diagnostic tools and outputs to help diagnose problems that may arise due to misconfiguration and other difficulties. These should be checked whenever problems are encountered.
On devices that provide it, the JavaOS console output can be highly informative if the applet terminates prematurely. When viewing this output, look for all exceptions that may be listed. Exceptions may occur that cause further exceptions as the program continues to execute, and it is usually the original exception that indicates the true cause of the problem. In addition, the GO-Joe applet will print messages to the status bar, but not all Java environments will show this status (or they may overwrite it with their own status messages). These messages are also sent to the JavaOS console, so they may be visible in the console log when they are not visible on the status line.
Recall that the applet supports a diagfile parameter that redirects the messages normally printed into the console log into a file on the local disk (or into a port on a remote machine). Note that depending on the configuration of the Java Security Manager, the applet may or may not be permitted to connect to the remote host.
The GlobalHost ddx loadable module redirects the standard error output for the session to a file called /tmp/Xerr:n, where n represents the display number of the session. This file s contains diagnostic messages from the GlobalInit program, from the ddx loadable module itself, and from the X clients that run throughout the session.
The GO-Joe product has been designed to be easy to configure and use, yet is somewhat complex in operation. Some of the more common problems encountered are described here.
The GlobalHost loadable module device driver in /devices/pseudo/goglobal@0:goglobal0 must be world readable and world writable. Early versions of the GO-Joe package would not always preserve these permissions. This problem has been corrected, but this remains a possible failure point for the session initialization. This problem can be diagnosed by checking the /tmp/Xerr:n file for permission denied messages related to the /dev/fbs/goglobal0 device.
The inetd.conf entry has proved to be one of the more trouble-prone parts of the GO-Joe installation. This should be corrected with the use of the shim script in /usr/openwin/server/etc/shim. Diagnose this problem by double-checking the /etc/inetd.conf entry: verify that an entry does exist, and that the path to the shim script is valid with no misspellings. Check also that the shim script contains the correct path to the go-login program.
If the GO-Joe applet fails to load entirely, suspect the HTML file you are loading and verify that the APPLET tag is correctly formed. Check the codebase path and the path and file name to the applet file itself. Finally, investigate the log files for your HTTP server (usually called access_log and error_log) to see if the applet is being successfully transmitted to the Java environment. It may sometimes also help to exit your browser or Java environment and restart it to clear any cached files that may be interfering with the applet's execution.
All Java environments implement a security manager that determines what operations may be dangerous for an applet to perform, and can allow or disallow these actions as it sees fit. The biggest restriction that most security managers implement with respect to GO-Joe, is that an applet is allowed to connect only to the host which served that applet. This means that, for example, if you have such a security manager, your GO-Joe applet will only be able to connect to go-login running on the server that the applet was loaded from. In addition, the diagfile functionality of GO-Joe is similarly restricted.
The exact exception that this generates is dependent on the Java environment in question, but it may appear similar to this message (from a Netscape browser):
security.AppletSecurityExceptionsecurity: Couldn't connect to 'x_host' with origin 'web_server_host'.
If your browser supports it (such as some versions of HotJava), you may be able to relax the behavior of the security manager to allow these connections.
Message |
Action |
---|---|
Cannot read /etc/hosts
File not found: /opt/SUNWjshm/bin/jdhostcfg
Cannot read /opt/SUNWjshm/lib/Help.txt
Cannot write /tmp/.jdcfg
|
Check to ensure the Solaris operating environment and the SUNWjshm package are installed correctly. Also check file system permissions.
|
Cannot find java interpreter. |
When installing Java Runtime Environment (JRE), include it in the PATH (environment variable).
|
Table D-5 describes additional error messages.