2012-07-03 59 views
3

我使用Uniobjects for Java從Win7Pro連接到AIX 5.3框。當udcs用戶登錄時,執行/ etc/profile。看來/ etc/environment不是來源的。如何設置UniObjects的時區?

如果rpc方法(使用aix用戶'sbr')調用使用TIME()的Unidata子例程,則其結果爲UTC。如果同一用戶('sbr')登錄並執行相同的操作(不包含rpc),則TIME()返回UTC-5。

當我與支持人員討論這個問題時,我被告知UniObjects RPC調用執行/ etc/profile,但從不檢查用戶主目錄中的.profile。就像我在第一句中所說的那樣,似乎也沒有使用/ etc/environment。

注意:我最初沒有將其標記爲java,因爲這與VB綁定到相同的rpc服務一致。

回答

0

我花了幾個小時試圖解決這個問題。

這裏真正的解決方案是不依賴TIME()函數來完成任何重要的事情。如果您在此特定框中解決問題,只需將其移動到另一個框,問題可能再次出現。

另外,如果其他程序對時區設置(即cron作業)同樣敏感,那麼與這些設置混淆可能會與這些設置發生衝突。

幸運的是,我可以重構我的UniBasic函數以不依賴TIME()函數。

祝你好運!

1

這不是您通過UniObjects解決的問題。您需要確保在服務器上爲udcs用戶設置了正確的時區。

+0

我不知道有一個udcs用戶。在我的問題中,這是一個糟糕的選擇。 unirpcd以root用戶身份運行。你可以在你的單身數據盒上覆制我的發現嗎? – slestak

+0

不,我不能,這就是爲什麼它很可能意味着AIX用戶配置問題。是的,UniRPC以root用戶身份啓動,然後將通過UniRPC爲用戶登錄而分叉一個進程。檢查根設置是否正確,關於時區 –

+0

我仔細檢查了UniRPC分叉的用戶,它似乎有適當的TZ設置。現在檢查根目錄。當我在$ UDTHOME中設置serverdebug時,寫入的文件已經存在TZ問題。第1列中的時間戳是UTC。 ksh中的根設置爲EST。 – slestak