使用port forwarding 连接 TimesTen

在windows主机上安装了TimesTen Client,然后主机上通过VirtualBox虚拟出Linux Guest OS,安装了TimesTen Server。
由于虚拟机配置的是NAT网络,缺省情况下,虚拟机对于主机是不可见的,因此也无法作为服务器使用。有两种方法可以解决问题:

  1. 更改网络为Bridged Network
  2. 设置NAT网络的port forwarding

这里讨论第2种方法,也即将主机接收到的请求转发给虚拟机。

在NAT设置下,Guest OS的IP如下:

[timesten@localhost ~]$ ifconfig -a

eth0  Link encap:Ethernet  HWaddr 08:00:27:45:AB:7A  
  inet addr:10.0.2.100  Bcast:10.0.2.255  Mask:255.255.255.0
  inet6 addr: fe80::a00:27ff:fe45:ab7a/64 Scope:Link
  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  RX packets:167 errors:0 dropped:0 overruns:0 frame:0
  TX packets:206 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000 
  RX bytes:18231 (17.8 KiB)  TX bytes:25049 (24.4 KiB)

Guest OS可以ping主机的IP:

[timesten@localhost ~]$ ping 192.168.56.1
PING 192.168.56.1 (192.168.56.1) 56(84) bytes of data.
64 bytes from 192.168.56.1: icmp_seq=1 ttl=127 time=1.70 ms
64 bytes from 192.168.56.1: icmp_seq=2 ttl=127 time=1.17 ms

Host OS的地址是在VirtualBox Host-Only Network中自动定义的。

而Host OS无法访问Guest OS.

设置如下图:

打开网络设置,选择端口转发

设置如图的规则

在ODBC数据源中设置的DSN如下,注意服务器为localhost:

然后在SQL Developer中就可以建立TimesTen连接,测试成功

其实,我还是建议大家用bridged network的,不过通过设置port forwarding,可以明白一个重要的概念。
就是TimesTen的Main Daemon和Server Daemon的关系。

在ttstatus中可以看到这些daemon:

[timesten@localhost ~]$ ttstatus
TimesTen status report as of Fri Aug 26 23:20:44 2016

Daemon pid 3418 port 53396 instance tt1122
TimesTen server pid 3427 started on port 53397
...

以上的Daemon,又称为TimesTen Daemon, Data Manager Daemon, Main Daemon

而TimesTen Server即Server Daemon,它处理所有的C/S连接。所以我们选择的端口是53397而非53396

参考

  • http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/
  • http://www.jianshu.com/p/f59a0695b164

你可能感兴趣的:(守护进程,VirtualBox,timesten)