[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002723] Re: [gphys_netcdf] too many connects



神代です.

かなり古くからの話題ですが,
OPeNDAPのNetCDFライブラリを使うと ruby-netcdf で32個までしかファイルが
開けないという問題があります.

この解決方法がわかりました.

OPeNDAPのNetCDFライブラリ libnc-dap の
lnetcdf/lnetcdf.h
lnetcdf/netcdf.h
の中の

#define MAX_NC_OPEN 32

を

#define MAX_NC_OPEN sysconf(_SC_OPEN_MAX)

にすれば,そのシステムでの 1プロセスが同時にオープンできるファイル数の
上限が適用されます.

この変更をしたあとで,configure; make; make install してください.
なお,libdap には変更必要ありません.

次にRPMパッケージを作る際には,この変更をしようと思います.
Debianのパッケージでも同様に作っていただけるといいと思います.

なお,libnc-dap の最新は 3.6.2 です.(libdap は 3.7.2)
ftp://ftp.unidata.ucar.edu/pub/opendap/source


At Mon, 07 Nov 2005 16:45:41 +0900,
Takeshi Horinouchi wrote:
> 
> 堀之内です。
> 
> これ、"connects" から想像着く通り、OPeNDAP/DODS の NetCDF ライブ
> ラりーから出てます。30個ぐらいまでの制限になってしまってて、純正
> 品の NetCDF ライブラリーよりも随分少ないです。ローカルなファイル
> なので、こんなに制限する必要ないはずなのですが、要するに実装が悪
> いんですね。意見を言っとかないと思いつつ、まだやってません。
> 
> # デフォルトで DODS 対応版を使うようにするのも考え物かもしれま
>    せん。しかし、対応版と非対応版の2つのパッケージを用意するの
>    はややこしそう。やはり改善してもらうのがいいような。。。
> 
> > 竹広です. 
> > 
> > 毎度 trivial なところでこけてます. 今回は以下のような
> > メッセージにでくわししました. 単純に netcdf ファイルを
> > いくつも開けているんですけど, その数に制限があるんでしょうか. 
> > 
> >   add_connect: too many connects, cannot add another
> >   /usr/lib/ruby/1.8/numru/gphys/gphys_netcdf_io.rb:520:in `var': Not a netCDF id (NetcdfBadid)
> > 	  from /usr/lib/ruby/1.8/numru/gphys/gphys_netcdf_io.rb:520:in `__interpret_files'
> > 	  from /usr/lib/ruby/1.8/numru/gphys/gphys_netcdf_io.rb:316:in `open'
> > 	  from /usr/lib/ruby/1.8/numru/gphys/gphys_io.rb:94:in `open'
> > 	  from /usr/lib/ruby/1.8/numru/gphys/gphys_io.rb:238:in `open_gturl'