2013年3月26日
#
今天在做手機終端開發時,發現連上域名服務器老是連不上,而直接用IP連接是OK的,初步懷凝是DNS問題引起來,經查相關的資料,現記錄如下:
Android模擬器默認的地址是10.0.2.3,默認的DNS也是10.0.2.3,而一般電腦的IP都是192.168.1.100之類的,不在同一個網段。所以就會出現電腦可以上網但是模擬器不能上網的情況。其實設置方法很簡單,只要把模擬器的默認DNS設置成電腦的DNS地址即可。
第一步:用系統的命令進入Android開發包的tools目錄
cd X:\...\android-sdk-windows\tool
第二布:使用adb的shell,確認系統的各項屬性
adb shell
getprop
getprop會列出系統當前的各項屬性
第三步:得到模擬器的DNS地址
在結果里可以看到:
[net.dns1]: [10.0.2.3]
[net.dns2]: [10.0.2.4]
[net.dns3]: [10.0.2.5]
[net.dns4]: [10.0.2.6]
第四步:把dns改成我們自己的DNS
setprop net.dns1 192.168.1.1
連接的URL串
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=vip1)(PORT
=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=vip2)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=
on))(CONNECT_DATA=(SERVICE_NAME=gs)))
啟動 lsnrctl start
狀態 lsnrctl status
關閉 lsnrctl stop
導出命令:exp 用戶名/密碼@數據庫 owner=用戶名 file=文件存儲路徑(如:F:\abcd.dmp)
測試截圖:exp ZM/sql123@ORCL owner=ZM file=F\abcd.dmp

導入命令:imp 用戶名/密碼@數據庫 fromuser=用戶名 touser=用戶名 file=d:\cu.dmp ignore=y
imp:命令類型
cu/mycu@db:導入的數據庫登陸(用戶名/密碼@數據庫)
fromuser:文件的指定用戶
touser:指定導入到當前登錄的數據庫某個用戶
file:需要導入的數據文件
ignore:是否忽略創建錯誤
測試截圖:
imp ZM/sql123@ORCL fromuser=ZM touser=SZZM file=F:\test.dmp ignore=y

linux環境下的rmi常見問題
問題一:RMI服務提供程序運行在Windows操作系統下,RMI服務可以正常訪問,但將RMI服務提供程序部署到Linux操作系統下后,RMI服務無法訪問,提示
org.springframework.remoting.RemoteConnectFailureException:
Cannot connect to remote service [rmi://192.168.0.106:1199/ItemRetag]; nested exception is java.rmi.ConnectException: Connection refused to host: 127.0.0.1; ……
解決辦法:在加載RMI服務之前將當前服務器的IP指定給hostName,如 System.setProperty("java.rmi.server.hostname", "192.168.100.7");或者修改/etc/hosts文件,在這個文件中加 192.168.100.54 testlinux1 localhost.localdomain localhost 就行,或者將/etc/hosts文件中默認的127.0.0.1改成當前機器的IP即可!
問題二:java.rmi.server.ExportException: internal error: ObjID already in use Caused by: java.rmi.server.ExportException: internal error: ObjID already in use……
出現這種問題及有可能是/etc/hosts文件中指定的IP并不是當前服務器的真實IP,RMI在初始化時注冊服務失敗。
通過System.out.println(InetAddress.getLocalHost().toString());查看當前主機的IP是否為真實IP,如顯示為SIMBANK/220.250.64.24,而真實IP為192.168.1.2
解決辦法:修改/etc/hosts文件中錯誤的IP即可,將:
220.250.64.24 SIMBANK
修改為
192.168.1.2 SIMBANK
JAVA中,通過分析Heapdump文件可以檢查程序是否存在內存泄露,但是這個文件一般是在程序遇到致命問題時才會產生,而如何事前生成這個文件,從而在程序尚末崩潰前找出問題的所在。
以下記述了各個版本的JDK產生DUMP文件的方法:
UN JDK生成Heapdump文件只需要在tomcat啟動腳本中增加 HeapDumpOnOutOfMemoryError 參數
此參數需要Java SE release 5.0 update 14 或以上支持
設置示例:
set JAVA_OPTS=%JAVA_OPTS% -server -Xms512m -Xmx800m -XX:PermSize=64M -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+HeapDumpOnOutOfMemoryError -XX:+HeapDumpOnCtrlBreak
IBM JDK生成Heapdump文件的開關:
— export IBM_HEAPDUMP=true
— export IBM_HEAP_DUMP=true
— export IBM_HEAPDUMP_OUTOFMEMORY=true
— export IBM_JAVADUMP_OUTOFMEMORY=true
— export IBM_JAVACORE_OUTOFMEMORY=true
— export IBM_HEAPDUMPDIR=<directory_path>
HP JDK生成Heapdump文件需要在在環境變量上,加上export _JAVA_HEAPDUMP=1