Here is the log file and strace output file. Timings configured are 30sec health check interval, 5sec timeout, and 2 retries with 10sec retry delay.<br><br>It takes a lot more than 5sec from started health check to sleeping 10sec for first retry.<br>
<br>Seen in code (main.x, health_check() function), within (retry) attempt there is inner retry (first with postgres database then with template1) and that part doesn&#39;t seem to be interrupted by alarm.<br>

<br>Regards,<br>Stevo.<br><br><div class="gmail_quote">2012/1/11 Tatsuo Ishii <span dir="ltr">&lt;<a href="mailto:ishii@postgresql.org" target="_blank">ishii@postgresql.org</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Ok, I will do it. In the mean time you could use &quot;strace -tt -p PID&quot;<br>
to see which system call is blocked.<br>
<div><div>--<br>
Tatsuo Ishii<br>
SRA OSS, Inc. Japan<br>
English: <a href="http://www.sraoss.co.jp/index_en.php" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
Japanese: <a href="http://www.sraoss.co.jp" target="_blank">http://www.sraoss.co.jp</a><br>
<br>
&gt; OK, got the info - key point is that ip forwarding is disabled for security<br>
&gt; reasons. Rules in iptables are not important, iptables can be stopped, or<br>
&gt; previously added rules removed.<br>
&gt;<br>
&gt; Here are the steps to reproduce (kudos to my colleague Nenad Bulatovic for<br>
&gt; providing this):<br>
&gt;<br>
&gt; 1.) make sure that ip forwarding is off:<br>
&gt;     echo 0 &gt; /proc/sys/net/ipv4/ip_forward<br>
&gt; 2.) create IP alias on some interface (and have postgres listen on it):<br>
&gt;     ip addr add x.x.x.x/yy dev ethz<br>
&gt; 3.) set backend_hostname0 to aforementioned IP<br>
&gt; 4.) start pgpool and monitor health checks<br>
&gt; 5.) remove IP alias:<br>
&gt;     ip addr del x.x.x.x/yy dev ethz<br>
&gt;<br>
&gt;<br>
&gt; Here is the interesting part in pgpool log after this:<br>
&gt; 2012-01-11 17:38:04 DEBUG: pid 24358: starting health checking<br>
&gt; 2012-01-11 17:38:04 DEBUG: pid 24358: health_check: 0 th DB node status: 2<br>
&gt; 2012-01-11 17:38:04 DEBUG: pid 24358: health_check: 1 th DB node status: 1<br>
&gt; 2012-01-11 17:38:34 DEBUG: pid 24358: starting health checking<br>
&gt; 2012-01-11 17:38:34 DEBUG: pid 24358: health_check: 0 th DB node status: 2<br>
&gt; 2012-01-11 17:41:43 DEBUG: pid 24358: health_check: 0 th DB node status: 2<br>
&gt; 2012-01-11 17:41:46 ERROR: pid 24358: health check failed. 0 th host<br>
&gt; 192.168.2.27 at port 5432 is down<br>
&gt; 2012-01-11 17:41:46 LOG:   pid 24358: health check retry sleep time: 10<br>
&gt; second(s)<br>
&gt;<br>
&gt; That pgpool was configured with health check interval of 30sec, 5sec<br>
&gt; timeout, and 10sec retry delay with 2 max retries.<br>
&gt;<br>
&gt; Making use of libpq instead for connecting to db in health checks IMO<br>
&gt; should resolve it, but you&#39;ll best determine which call exactly gets<br>
&gt; blocked waiting. Btw, psql with PGCONNECT_TIMEOUT env var configured<br>
&gt; respects that env var timeout.<br>
&gt;<br>
&gt; Regards,<br>
&gt; Stevo.<br>
&gt;<br>
&gt; On Wed, Jan 11, 2012 at 11:15 AM, Stevo Slavić &lt;<a href="mailto:sslavic@gmail.com" target="_blank">sslavic@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt;&gt; Tatsuo,<br>
&gt;&gt;<br>
&gt;&gt; Did you restart iptables after adding rule?<br>
&gt;&gt;<br>
&gt;&gt; Regards,<br>
&gt;&gt; Stevo.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Wed, Jan 11, 2012 at 11:12 AM, Stevo Slavić &lt;<a href="mailto:sslavic@gmail.com" target="_blank">sslavic@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; Looking into this to verify if these are all necessary changes to have<br>
&gt;&gt;&gt; port unreachable message silently rejected (suspecting some kernel<br>
&gt;&gt;&gt; parameter tuning is needed).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Just to clarify it&#39;s not a problem that host is being detected by pgpool<br>
&gt;&gt;&gt; to be down, but the timing when that happens. On environment where issue is<br>
&gt;&gt;&gt; reproduced pgpool as part of health check attempt tries to connect to<br>
&gt;&gt;&gt; backend and hangs for tcp timeout instead of being interrupted by timeout<br>
&gt;&gt;&gt; alarm. Can you verify/confirm please the health check retry timings are not<br>
&gt;&gt;&gt; delayed?<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Regards,<br>
&gt;&gt;&gt; Stevo.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Wed, Jan 11, 2012 at 10:50 AM, Tatsuo Ishii &lt;<a href="mailto:ishii@postgresql.org" target="_blank">ishii@postgresql.org</a>&gt;wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Ok, I did:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; # iptables -A FORWARD -j REJECT --reject-with icmp-port-unreachable<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; on the host where pgpoo is running. And pull network cable from<br>
&gt;&gt;&gt;&gt; backend0 host network interface. Pgpool detected the host being down<br>
&gt;&gt;&gt;&gt; as expected...<br>
&gt;&gt;&gt;&gt; --<br>
&gt;&gt;&gt;&gt; Tatsuo Ishii<br>
&gt;&gt;&gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt;&gt;&gt; English: <a href="http://www.sraoss.co.jp/index_en.php" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
&gt;&gt;&gt;&gt; Japanese: <a href="http://www.sraoss.co.jp" target="_blank">http://www.sraoss.co.jp</a><br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt; Backend is not destination of this message, pgpool host is, and we<br>
&gt;&gt;&gt;&gt; don&#39;t<br>
&gt;&gt;&gt;&gt; &gt; want it to ever get it. With command I&#39;ve sent you rule will be<br>
&gt;&gt;&gt;&gt; created for<br>
&gt;&gt;&gt;&gt; &gt; any source and destination.<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; Regards,<br>
&gt;&gt;&gt;&gt; &gt; Stevo.<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt; On Wed, Jan 11, 2012 at 10:38 AM, Tatsuo Ishii &lt;<a href="mailto:ishii@postgresql.org" target="_blank">ishii@postgresql.org</a>&gt;<br>
&gt;&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; I did following:<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Do following on the host where pgpool is running on:<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; # iptables -A FORWARD -j REJECT --reject-with icmp-port-unreachable -d<br>
&gt;&gt;&gt;&gt; &gt;&gt; 133.137.177.124<br>
&gt;&gt;&gt;&gt; &gt;&gt; (133.137.177.124 is the host where backend is running on)<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; Pull network cable from backend0 host network interface. Pgpool<br>
&gt;&gt;&gt;&gt; &gt;&gt; detected the host being down as expected. Am I missing something?<br>
&gt;&gt;&gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt;&gt; &gt;&gt; Tatsuo Ishii<br>
&gt;&gt;&gt;&gt; &gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt;&gt;&gt; &gt;&gt; English: <a href="http://www.sraoss.co.jp/index_en.php" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; Japanese: <a href="http://www.sraoss.co.jp" target="_blank">http://www.sraoss.co.jp</a><br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; Hello Tatsuo,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; With backend0 on one host just configure following rule on other<br>
&gt;&gt;&gt;&gt; host<br>
&gt;&gt;&gt;&gt; &gt;&gt; where<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; pgpool is:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; iptables -A FORWARD -j REJECT --reject-with icmp-port-unreachable<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; and then have pgpool startup with health checking and retrying<br>
&gt;&gt;&gt;&gt; &gt;&gt; configured,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; and then pull network cable from backend0 host network interface.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; Regards,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; Stevo.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt; On Wed, Jan 11, 2012 at 6:27 AM, Tatsuo Ishii &lt;<a href="mailto:ishii@postgresql.org" target="_blank">ishii@postgresql.org</a><br>
&gt;&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; I want to try to test the situation you descrived:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; When system is configured for security reasons not to return<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; destination<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; host unreachable messages, even though health_check_timeout is<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; But I don&#39;t know how to do it. I pulled out the network cable and<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; pgpool detected it as expected. Also I configured the server which<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; PostgreSQL is running on to disable the 5432 port. In this case<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; connect(2) returned EHOSTUNREACH (No route to host) so pgpool<br>
&gt;&gt;&gt;&gt; detected<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; the error as expected.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; Could you please instruct me?<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; Tatsuo Ishii<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; English: <a href="http://www.sraoss.co.jp/index_en.php" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; Japanese: <a href="http://www.sraoss.co.jp" target="_blank">http://www.sraoss.co.jp</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Hello Tatsuo,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thank you for replying!<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; I&#39;m not sure what exactly is blocking, just by pgpool code<br>
&gt;&gt;&gt;&gt; analysis I<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; suspect it is the part where a connection is made to the db and<br>
&gt;&gt;&gt;&gt; it<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; doesn&#39;t<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; seem to get interrupted by alarm. Tested thoroughly health check<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; behaviour,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; it works really well when host/ip is there and just<br>
&gt;&gt;&gt;&gt; backend/postgres<br>
&gt;&gt;&gt;&gt; &gt;&gt; is<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; down, but not when backend host/ip is down. I could see in log<br>
&gt;&gt;&gt;&gt; that<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; initial<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; health check and each retry got delayed when host/ip is not<br>
&gt;&gt;&gt;&gt; reachable,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; while when just backend is not listening (is down) on the<br>
&gt;&gt;&gt;&gt; reachable<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; host/ip<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; then initial health check and all retries are exact to the<br>
&gt;&gt;&gt;&gt; settings in<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; pgpool.conf.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; PGCONNECT_TIMEOUT is listed as one of the libpq environment<br>
&gt;&gt;&gt;&gt; variables<br>
&gt;&gt;&gt;&gt; &gt;&gt; in<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; the docs (see<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; <a href="http://www.postgresql.org/docs/9.1/static/libpq-envars.html" target="_blank">http://www.postgresql.org/docs/9.1/static/libpq-envars.html</a> )<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; There is equivalent parameter in libpq PGconnectdbParams ( see<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; <a href="http://www.postgresql.org/docs/9.1/static/libpq-connect.html#LIBPQ-CONNECT-CONNECT-TIMEOUT" target="_blank">http://www.postgresql.org/docs/9.1/static/libpq-connect.html#LIBPQ-CONNECT-CONNECT-TIMEOUT</a><br>



&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; )<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; At the beginning of that same page there are some important<br>
&gt;&gt;&gt;&gt; infos on<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; using<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; these functions.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; psql respects PGCONNECT_TIMEOUT.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Regards,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Stevo.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; On Wed, Jan 11, 2012 at 12:13 AM, Tatsuo Ishii &lt;<br>
&gt;&gt;&gt;&gt; <a href="mailto:ishii@postgresql.org" target="_blank">ishii@postgresql.org</a>&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Hello pgpool community,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; When system is configured for security reasons not to return<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; destination<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; host unreachable messages, even though health_check_timeout is<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; configured,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; socket call will block and alarm will not get raised until TCP<br>
&gt;&gt;&gt;&gt; &gt;&gt; timeout<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; occurs.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Interesting. So are you saying that read(2) cannot be<br>
&gt;&gt;&gt;&gt; interrupted by<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; alarm signal if the system is configured not to return<br>
&gt;&gt;&gt;&gt; destination<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; host unreachable message? Could you please guide me where I can<br>
&gt;&gt;&gt;&gt; get<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; such that info? (I&#39;m not a network expert).<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; Not a C programmer, found some info that select call could be<br>
&gt;&gt;&gt;&gt; &gt;&gt; replace<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; with<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; select/pselect calls. Maybe it would be best if<br>
&gt;&gt;&gt;&gt; PGCONNECT_TIMEOUT<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; value<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; could be used here for connection timeout. pgpool has libpq as<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; dependency,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; why isn&#39;t it using libpq for the healthcheck db connect<br>
&gt;&gt;&gt;&gt; calls, then<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; &gt; PGCONNECT_TIMEOUT would be applied?<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; I don&#39;t think libpq uses select/pselect for establishing<br>
&gt;&gt;&gt;&gt; connection,<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; but using libpq instead of homebrew code seems to be an idea.<br>
&gt;&gt;&gt;&gt; Let me<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; think about it.<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; One question. Are you sure that libpq can deal with the case<br>
&gt;&gt;&gt;&gt; (not to<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; return destination host unreachable messages) by using<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; PGCONNECT_TIMEOUT?<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; --<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Tatsuo Ishii<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; SRA OSS, Inc. Japan<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; English: <a href="http://www.sraoss.co.jp/index_en.php" target="_blank">http://www.sraoss.co.jp/index_en.php</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt; Japanese: <a href="http://www.sraoss.co.jp" target="_blank">http://www.sraoss.co.jp</a><br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;<br>
</div></div></blockquote></div><br>