3.1. 已知错误和问题

本节列出了 SGD 4.70 发行版的已知错误和问题。

3.1.1. 2205237-重新启动断开连接的会话时出现无缝窗口显示问题

问题:用户关闭某个 Windows 应用程序后重新启动该应用程序时可能会遇到无缝窗口问题。在 Windows Server 2008 R2 服务器上托管该应用程序时会出现此问题。

原因:某些 SGD 增强模块版本的一个已知问题。

解决方法:确保 Windows 应用服务器上运行的 SGD 增强模块版本与 SGD 服务器版本相同。

3.1.2. 6555834-为浏览器启用了 Java 技术,但客户端设备上未安装该技术

问题:如果在浏览器设置中启用了 Java 技术,但客户端设备上未安装 Java Plug-in 软件,则不会显示 SGD Webtop。登录过程会在出现过渡屏幕时停止。

原因:SGD 使用浏览器设置来确定是否使用 Java 技术。

解决方法:安装 Java Plug-in 软件,然后创建一个从浏览器插件目录到 Java 虚拟机 (Java Virtual Machine, JVM) 软件所在位置的符号链接。有关更多信息,请参阅您的浏览器文档。

3.1.3. 6831480-备份主服务器列表命令返回错误

问题:在已停止并已从阵列分离的 SGD 服务器上使用 tarantella array list_backup_primaries 命令会返回 "Failed to connect"(无法连接)错误。

原因:一个已知问题。

解决方法:在使用 tarantella array list_backup_primaries 命令之前,先重新启动分离的 SGD 服务器。

3.1.4. 6863153-超级终端应用程序在重新定位的 Windows 桌面会话中挂起

问题:对于在 Windows 桌面会话中运行超级终端应用程序的用户,如果他们尝试从其他客户端设备恢复桌面会话,则会遇到问题。超级终端应用程序会没有响应,并且无法关闭。

原因:从其他客户端设备恢复 Windows 桌面会话(也称为“会话抓取 (session grabbing)”)时,超级终端的一个已知问题。

解决方法:先关闭超级终端应用程序,然后再从其他客户端设备恢复 Windows 桌面会话。

3.1.5. 6937146-64 位 Linux 应用服务器上托管的 X 应用程序的音频不可用

问题:在 64 位 Linux 应用服务器上托管的 X 应用程序中可能无法播放音频。对于已固定编码为使用 /dev/dsp/dev/audio 设备并启用音频重定向库 (--unixaudiopreload) 属性的 X 应用程序,会出现此问题。

原因:一个已知问题。64 位 SGD 音频重定向库未包含在 SGD 增强模块中。

解决方法:目前没有已知的解决方法。

3.1.6. 6942981-应用程序在 Solaris Trusted Extensions 上启动慢

问题:在 Oracle Solaris Trusted Extensions 平台上,Windows 应用程序和 X 应用程序的启动时间可能比预期要长。

原因:默认情况下,X 协议引擎会尝试连接到 X 显示端口 10。使用 Solaris Trusted Extensions 时,此端口不可用。一段时间之后,X 协议引擎会连接到其他 X 显示端口,应用程序将成功启动。

解决方法:执行以下任一操作:

  • 更改 SGD 服务器使用的默认最小显示端口。

    在 SGD 服务器上 /opt/tarantella/var/serverconfig/local 目录下的 xpe.properties 文件中,配置以下设置:

    tarantella.config.xpeconfig.defaultmindisplay=11

    进行此更改后,重新启动 SGD 服务器。

  • 排除不可用的端口,防止 X 协议引擎使用。

    在管理控制台中,转到阵列中每个 SGD 服务器的 "Protocol Engines"(协议引擎)→ "X" 选项卡,在 "Command-Line Arguments"(命令行参数)字段中键入 -xport portnum,其中 portnum 是要排除的 TCP 端口号。

    或者,也可以使用以下命令:

    $ tarantella config edit --xpe-args "-xport portnum"
    

    例如,要排除 X 显示端口 10 以防止 X 协议引擎使用,请使用以下命令:

    $ tarantella config edit --xpe-args "-xport 6010"

    所做的更改仅对新的 X 协议引擎有效。现有的 X 协议引擎不受影响。

3.1.7. 6957820-对 Windows 应用程序使用智能卡验证时,SGD 客户端会挂起

问题:使用智能卡从 Ubuntu Linux 10.04 客户端设备登录 Windows 应用程序会话时,SGD 客户端在用户退出经过验证的应用程序会话后会挂起。用户可能无法启动任何其他应用程序或从 SGD 注销。

原因:Ubuntu 客户端平台上 1.5.3 版 PCSC-Lite 中的一个已知问题。

解决方法:在客户端设备上更新到 PCSC-Lite 的最新版本。

3.1.8. 6962970-Windows 客户端设备使用多个 CAL

问题:为一个 Windows 客户端设备分配了多个客户端访问许可证 (client access licence, CAL)。每次启动 Windows 应用程序时,都无法正确分配 CAL。

原因:客户端设备上的 Windows 注册表中缺少 HKEY_LOCAL_MACHINE\Software\Microsoft\MSLicensing 注册表项或缺少其任意子注册表项时出现的一个已知问题。此问题会影响 Microsoft Windows 7 平台。

解决方法:通过使用管理员特权启动远程桌面连接,重新创建缺少的注册表项。有关更多详细信息,请参见 Microsoft 知识库文章 187614。

3.1.9. 6970615-X 应用程序的 SecurID 验证失败

问题:使用 RSA Authentication Agent for PAM 时,X 应用程序的 SecurID 验证失败。对于配置为使用 telnet 作为连接方法的 X 应用程序,会出现此问题。

原因:使用 RSA Authentication Agent for PAM 时的一个已知问题。

解决方法:将 X 应用程序对象配置为使用 SSH 作为连接方法。

3.1.10. 7004887-在 Windows 客户端设备上,打印到文件失败

问题:当用户在通过 SGD 显示的 Windows 应用程序中选择 "Print to File"(打印到文件)菜单选项时,打印作业保持暂停在客户端设备上的打印队列中。Windows Vista 和 Windows 7 客户端设备上会出现此问题。

原因:某些 Windows 版本的一个已知问题。

解决方法:Microsoft 知识库文章 2022748 中介绍了适用于 Windows Vista 的变通解决方法。

3.1.11. 12300549-对于某些客户端语言环境,起始目录名不可读

问题:在 SGD 中使用客户端驱动器映射时,用户起始目录名中可能包含不可读的字符。默认情况下,用户的起始目录映射到名为 "My Home" 的驱动器。

在配置了非英语客户端语言环境(例如 ja_JP.UTF-8)的非 Windows 客户端设备上会出现此问题。

原因:某些客户端语言环境的一个已知问题。

解决方法:目前没有已知的解决方法。

3.1.12. 13068287-16 位颜色 OpenGL 应用程序问题

问题:通过 SGD 发布后,OpenGL 应用程序(例如三维图形程序)不能启动或不能正确显示。使用 "16-bit Color Depth"(16 位颜色深度)设置配置 X 应用程序对象时,会出现此问题。

原因:使用 16 位颜色显示 OpenGL 应用程序时的一个已知问题。

解决方法:变通解决方法是使用 "24-bit Color Depth"(24 位颜色深度)设置显示应用程序。

3.1.13. 13117149-Active Directory 用户名中带重音的字符

问题:如果用户名中包含带重音的字符(例如德语中的元音变音字符 (ü)),则 Active Directory 验证会失败。使用 Windows Server 2003 R2 时会出现此问题。

使用 server/login/info 日志过滤器时,日志输出中会显示以下错误:

javax.security.auth.login.LoginException: Integrity check on decrypted field failed (31)

原因:Active Directory 验证使用 Kerberos 验证协议。这是 Kerberos 验证配置为使用 DES 加密时的一个已知问题。

解决方法:变通解决方法是在 SGD 服务器上的 krb5.conf Kerberos 配置文件中禁止使用 DES 加密。

krb5.conf 文件的 [libdefaults] 部分中包括以下行。

  [libdefaults]
    default_tgs_enctypes =  rc4-hmac des3-cbc-sha1 aes128-cts aes256-cts
    default_tkt_enctypes =  rc4-hmac des3-cbc-sha1 aes128-cts aes256-cts

3.1.14. 13354844、14032389、13257432、13117470-Ubuntu 客户端设备上的显示问题

问题:运行 Ubuntu Linux 的客户端设备上可能会出现以下显示问题。

  • 如果您未在使用窗口管理器或者使用的是简约窗口管理器(例如 evilwm),kiosk 模式最小化按钮不起作用。

  • 用于在 kiosk 模式和集成窗口显示模式之间切换的按钮不起作用。

  • 使用 Unity 桌面时不显示 SGD Client 任务栏图标。

  • 应当跨多个监视器的无缝窗口应用程序显示在一个监视器上且带有滚动条。

原因:使用 Ubuntu Linux 客户端设备时的已知问题。

解决方法:使用以下变通解决方法之一。

  • 要使用 kiosk 模式的窗口装饰控件,窗口管理器必须实现从 "Normal"(普通)到 "Iconify"(图标化)的变化状态协议。确保正在运行合适的窗口管理器。

  • 使用 Ctrl+Alt+Break 键盘快捷键在 kiosk 模式和集成窗口显示模式之间切换。

  • 要显示 SGD Client 任务栏图标,请将 SGD Client 应用程序添加到 Unity 桌面的白名单。

    启动 dconf-editor,然后转到 "Desktop"(桌面)→ "Unity" → "Panel"(面板)对话框。将 Oracle Secure Global Desktop 添加到应用程序列表。

  • 对于多监视器无缝窗口问题,没有已知解决方法。

3.1.15. 13360596-Oracle VDI 的让渡验证问题

问题:将 VDI 代理程序与 Oracle VDI 一起使用时,如果向 Windows 桌面进行验证,会显示错误。用户每次启动桌面时都必须输入其密码。

原因:SGD 如何为某些 Oracle VDI 配置缓存用户凭证的一个已知问题。

解决方法:在 SGD 服务器上,编辑位于 /opt/tarantella/webserver/tomcat/tomcat-version/webapps/sgd/applicationLaunch/appLaunch.jsp 的应用程序启动脚本。

appLaunch.jsp 的第 484 行找到以下语句:

if (chosenCandidate.getUsername() == null)

编辑该语句,使其内容为:

if (chosenCandidate.getUsername() == null || chosenCandidate.getPassword() == null)

3.1.16. 13971245-Oracle Solaris 11 上的软件包删除问题

问题:Oracle Solaris 11 平台上可能不能干净地卸载 SGD。卸载 SGD 后,SGD 软件包的条目仍在 Solaris 软件包数据库中存在。

原因:使用 Oracle Solaris 11 中包含的映像包管理系统 (Image Packaging System, IPS) 以及删除 SGD 时的一个已知问题。

解决方法:变通解决方法是卸载 SGD 后使用 SGD 软件包数据库修复脚本 pkgdbfix.sh。此脚本包含在 SGD 服务器上的 /opt/tarantella/etc/data 目录中。

以超级用户 (root) 身份登录并执行以下操作:

  • 卸载 SGD 并检查 Solaris 软件包数据库中的 SGD 软件包条目。

    # pkgchk -l tta
    # pkgchk -l tta.2
  • 如果使用上述任一命令时报告任何软件包条目,请修复软件包数据库。

    # sh pkgdbfix.sh package-instance

    其中,package-instance 是报告的软件包实例 ttatta.2

3.1.17. 14026511-Oracle VDI 升级后 VDI 代理程序连接失败

问题:升级或重新配置 Oracle VDI 主机后,用户可能无法使用 VDI 代理程序连接到其 Oracle VDI 桌面。

原因:使用 VDI 代理程序时,将通过使用 Web 服务 API 的自签名 SSL 证书来确保与 Oracle VDI 主机连接的安全。

每当重新配置或升级主机上的 Oracle VDI 时,将重新生成 Web 服务自签名证书,不会保留现有的 SSL 证书。此外,升级时,Web 服务 SSL 证书中使用的主机名(主体)可能会更改。

解决方法:使用以下变通解决方法之一:

  • 升级或重新配置前在 Oracle VDI 主机上备份 Web 服务证书密钥库。对 Oracle VDI 安装进行更改后从备份中恢复密钥库。

    Oracle VDI 文档中介绍了此过程。

  • 按如下所述重新配置 VDI 代理程序:

    • 每个 Oracle VDI 主机的 Web 服务 SSL 证书导入到每个 SGD 服务器上的证书信任库。根据您的配置,信任库是 CA 证书信任库或专用信任库。

    • 重新配置 VDI 代理程序以使用 Web 服务 SSL 证书中显示的主机名。

      更改 preferredhostsfailoverhosts 设置以使用新主机名。

3.1.18. 14021467-Webtop 语言选择问题

问题:通常,用户可以从 SGD 欢迎页面上的列表中选择首选语言。然后,他们可以单击 "Log in"(登录)以该语言访问 Webtop。

在 SGD 欢迎页面上选择语言后,用户可能无法选择其他语言进行后续登录。

原因:缓存首选语言选择的一个已知问题。

解决方法:使用以下变通解决方法之一:

  • 选择其他语言之前清除浏览器高速缓存。

  • localeutils.jsp 文件的第 66 行找到以下文本:

      prefLang = (String) pageContext.getAttribute(PREF_LANG, PageContext.SESSION_SCOPE);

    localeutils.jsp 文件位于 SGD 服务器的 /opt/tarantella/webserver/tomcat/tomcat-version/webapps/sgd/resources/jsp 目录中。

  • 编辑该文件,使其内容为:

    if (httpServletRequest.getParameter(LANG_SELECTED) == null)
      prefLang = (String) pageContext.getAttribute(PREF_LANG, PageContext.SESSION_SCOPE);

3.1.19. 14085800-Active Directory 过期密码处理问题

问题:用户的 Active Directory 密码过期后,用户能够在 SGD 提示时更新其密码。但是,更新后的密码并不能总是正确存储在密码高速缓存中。

这意味着,某些用户每次启动 Windows 应用服务器上托管的应用程序时都可能会提示他们提供验证凭证。

在以下情况下会出现此问题:

  • SGD 配置为在登录应用服务器时自动尝试用户的密码(如果已缓存该密码)。默认情况下,SGD 执行此操作。

  • Active Directory 服务对象启用了密码过期设置 (--check-pwd-policy)。

原因:SGD 如何处理 Active Directory 过期密码的一个已知问题。

解决方法:使用以下变通解决方法。

  • 禁用服务对象的密码过期功能。例如:

    $ tarantella service edit --name ad1-east --check-pwd-policy 0
  • 配置 Windows 应用程序对象的 "Domain Name"(域名)属性。例如:

    $ tarantella object edit --name obj --ntdomain east.example.com

3.1.20. 14147506-如果更改主服务器,阵列回弹会失败

问题:如果在阵列处于已修复状态时更改主服务器,则阵列回弹可能会失败。故障转移阶段已完成时,阵列处于已修复状态。

在阵列回弹的恢复阶段之后,当无法联系的服务器重新加入阵列时,与其他阵列成员的通信可能无法正常进行。

为阵列启用阵列内安全通信时会出现此问题。

原因:使用阵列内安全通信时阵列回弹的一个已知问题。默认情况下,为 SGD 服务器启用阵列内安全通信。

解决方法:没有已知的解决方法。如果可能,请避免在阵列回弹过程中更改阵列结构。

3.1.21. 14221098-Konsole 应用程序无法在 Oracle Linux 上启动

问题:KDE Konsole 终端仿真程序在 SGD 中配置为 X 应用程序对象时无法启动。

在 Oracle Linux 6 平台上托管该应用程序时会出现此问题。

原因:在 Oracle Linux 6 上运行 Konsole 时的一个已知问题。此问题由启动时应用程序进程分支引起。

解决方法:变通解决方法是启动 Konsole 时使用 --nofork 命令选项。

在管理控制台中,转至 X 应用程序对象的 "Launch"(启动) 选项卡,然后在 "Arguments for Command"(命令的参数)字段中输入 --nofork

3.1.22. 14237565-在非 Windows 客户端设备上打印时的页面大小问题

问题:打印作业不能以正确的页面格式传送到客户端打印机。例如,A4 页面大小文档的打印作业以 "Letter"(信函)页面大小文档格式传送到客户端打印机。根据客户端打印机配置,这可能会导致打印作业失败。

使用 Linux 和 Mac OS X 客户端设备时会出现此问题。

原因:打印到某些非 Windows 客户端设备时的一个已知问题。

解决方法:某些客户端打印机可配置为忽略页面大小格式。

一个变通解决方法是从 SGD 进行打印时使用 PDF 打印。

3.1.23. 14287570-Microsoft Windows Server 2003 应用程序对于大屏幕分辨率限于 8 位颜色深度

问题:对于 Microsoft Windows Server 2003 应用程序,客户端设备上的显示颜色深度对于大屏幕分辨率限于 8 位。屏幕分辨率高于 1600 x 1200 像素时会出现此问题。

原因:Windows Server 2003 远程桌面服务会话的一个已知问题。

解决方法:有关如何将颜色深度增加至 16 位的详细信息,请参见 Microsoft 修补程序 942610。

3.1.24. 14287730-从命令行进行投影时出现 X 错误消息

问题:从命令行中使用 tarantella emulatorsession shadow 命令投影应用程序会话时可能会出现类似以下内容的错误消息。

X Error:  BadImplementation
  Request Major code 152 (RANDR)
  Request Minor code 8 ()
  Error Serial #209
  Current Serial #209 

投影会按预期方式进行,尽管出现错误消息。

原因:客户端设备上的 X 服务器不实现会话大小调整时的一个已知问题。

解决方法:这些错误是良性的,可以忽略。

3.1.25. 14404371-"Authentication"(验证)对话框中的用户输入字符不可读

问题:用户尝试使用 SGD "Authentication"(验证)对话框输入验证凭证时,某些输入字符可能不可读。在非 Windows 客户端设备上,如果用户凭证包含多字节字符(例如欧洲语言字符),则会出现此问题。

当用户按住 Shift 键同时在 Webtop 上单击应用程序链接时,将显示 SGD "Authentication"(验证)对话框。

原因:SGD Client 如何在某些客户端设备上设置字体列表的一个已知问题。

解决方法:使用以下变通解决方法。

  • 在客户端设备上,创建一个包含以下内容的字体规范文件:

    *XmTextField*fontList: -*-*-medium-r-normal-*-*-120-*-*-*-*-*-*
  • 使字体在客户端设备上可用。

    # xrdb -merge filename

    其中,filename 是字体规范文件的名称。

    或者,可以将字体规范添加到起始目录中的 .Xresources 文件。

3.1.26. 14408025-SGD Client 在 Ubuntu Linux 上意外退出

问题:在 Ubuntu Linux 12 客户端设备上,SGD Client 可能会意外退出。这意味着,用户必须恢复或重新启动其应用程序。

原因:此问题由缺少 Enlightened 声音守护进程 (Enlightened Sound Daemon, ESD) 库 libesd.so 引起。

解决方法:按如下所示在客户端设备上安装缺少的库:

# apt-get install libesd0

3.1.27. 14472019-SGD 在系统引导时不启动

问题:在 Oracle Linux 6 平台上,启动 SGD 主机时 SGD 不自动启动。

关闭 SGD 主机时,SGD 服务不能完全停止。

原因:此问题由 Oracle Linux 6 中引入的系统启动体系结构的更改引起。这意味着,安装 SGD 时未自动创建必需的符号链接。

解决方法:按如下所示添加符号链接:

# ln -s /etc/init.d/sun.com-sgd-base /etc/rc3.d/S90sun.com-sgd-base