Solaris 10 scales to....
A single instance of the Sparc Solaris 10 OS scales to....
How many processors?
How much memory?
A single instance of the x86 Solaris 10 OS scales to...
How many processors?
How much memory?
I've been searching all over, and unable to find these upper limits. If anyone knows, it would be greatly appreciated.
About the only way I can answer this is to quote the biggest machines of each variety that are available on the market.
The largest SPARC machine that Sun sells is a 72 processor (with 2 threads per processor) E25K with a max 576GB memory. Fujitsu sells a machine (PrimePower 2500) with up to 128 processors and 512GB memory.
The largest x86 machine that Sun sells takes up to 4 dual core processors with 32GB memory. (v40z).
As far as I know, this isn't the upper limit of Solaris scalability. It's just the upper limit of the hardware Sun has built and sold so far.
Similar Messages
-
I am trying to get the mail server moved to Solaris from NT. With the upgrade to 5.2 the office is wanting to move to 2000.
I need to know some facts to sell Solaris. Are there any places where NT/2000 would be lagging to Solaris with functions of the mail server? I need facts with this not rumors. What are your experinces with running 2000 to Solaris?
Thanks in advanceTo add the list
Solaris is a true 64 bit OS/ HW platform. microsoft has yet to break that barrier.
Solaris scales to more cpus and memory than any flavor of windows
Like any other flavor of Unix Solaris has much better muti-threading/tasking ability
Keep in mind jumping from the world of M$ into Sun does require a significant learning curve. If you are unable to justify your reasons for wanting to go to solaris I tend to wonder if you have ever worked with a *nix type OS. This is not meant to be an insult just an observation. Remember if you do not have the skillset and make the switch and things go wrong remember whos butt is on the line ;-) -
How to scale an nsapi app on Solaris SMP machines?
A Solaris nsapi application does not scale well on multi-processor (SMP) machines due to serialized heap allocation. What are the options to overcome this in an nsapi application?
We use SmartHeap from Microquill in our non-nsapi applications, but have not been able use it from our nsapi application (which we don't link). Has anyone had any success using SmartHeap or a similar product from an nsapi application?
Explicitly using the nsapi heap allocation macros is probably not an option for us.
Thanks
NorrieUsing the NSAPI pool allocator functions (e.g. pool_malloc) will give you the best possible performance, followed closely by the NSAPI pool allocator macros (e.g. MALLOC).
You can use SmartHeap from an NSAPI application - in fact, iWS 6.0 on Solaris bundles SmartHeap - but there are interoperability issues with Solaris JVMs. As a result, the server may crash when using SmartHeap with a Java-enabled iWS installation. -
Ffmpeg installation in solaris 10
Hello,
SunOS MixemSun 5.10 Generic_120012-14 i86pc i386 i86pc
I am trying to install ffmpeg in solaris 10 but no luck, Not able to install.
Anybody installed it before?? please help me.
# make
make: Fatal error in reader: Makefile, line 5: Unexpected end of line seen
# gmake
gmake: *** virtual memory exhausted. Stop.
CMOV enabled no
CMOV is fast no
EBX available yes
EBP available no
10 operands supported no
gprof enabled no
debug symbols yes
strip symbols yes
optimizations yes
static yes
shared no
postprocessing support no
software scaler enabled no
new filter support no
filters using lavformat no
video hooking yes
Imlib2 support no
FreeType support yes
network support yes
IPv6 support no
threading support no
SDL support no
Sun medialib support no
AVISynth enabled no
libamr-nb support no
libamr-wb support no
libdc1394 support no
libdirac enabled no
libfaac enabled no
libfaad enabled no
libfaad dlopened no
libgsm enabled no
libmp3lame enabled no
libnut enabled no
libopenjpeg enabled no
libschroedinger enabled no
libspeex enabled no
libtheora enabled no
libvorbis enabled no
libx264 enabled no
libxvid enabled no
vdpau enabled no
zlib enabled yes
bzlib enabled yes
Enabled decoders:
aac flashsv pcm_u24be
aasc flic pcm_u24le
adpcm_4xm flv pcm_u32be
adpcm_adx fourxm pcm_u32le
adpcm_ct fraps pcm_u8
adpcm_ea gif pcm_zork
adpcm_ea_maxis_xa h261 pcx
adpcm_ea_r1 h263 png
adpcm_ea_r2 h263i ptx
adpcm_ea_r3 h264 qcelp
adpcm_ea_xas huffyuv qdm2
adpcm_g726 idcin qdraw
adpcm_ima_amv imc qpeg
adpcm_ima_dk3 indeo2 qtrle
adpcm_ima_dk4 indeo3 ra_144
adpcm_ima_ea_eacs interplay_dpcm ra_288
adpcm_ima_ea_sead interplay_video rawvideo
adpcm_ima_iss jpegls rl2
adpcm_ima_qt kmvc roq
adpcm_ima_smjpeg loco roq_dpcm
adpcm_ima_wav mace3 rpza
adpcm_ima_ws mace6 rv10
adpcm_ms mdec rv20
adpcm_sbpro_2 mimic rv30
adpcm_sbpro_3 mjpeg rv40
adpcm_sbpro_4 mjpegb sgi
adpcm_swf mlp shorten
adpcm_thp mmvideo smackaud
adpcm_xa motionpixels smacker
adpcm_yamaha mp1 smc
alac mp2 snow
amv mp3 sol_dpcm
ape mp3adu sonic
asv1 mp3on4 sp5x
asv2 mpc7 sunrast
atrac3 mpc8 svq1
avs mpeg1video svq3
bethsoftvid mpeg2video targa
bfi mpeg4 theora
bmp mpegvideo thp
c93 msmpeg4v1 tiertexseqvideo
cavs msmpeg4v2 tiff
cinepak msmpeg4v3 truemotion1
cljr msrle truemotion2
cook msvideo1 truespeech
cscd mszh tscc
cyuv nellymoser tta
dca nuv txd
dnxhd pcm_alaw ulti
dsicinaudio pcm_dvd vb
dsicinvideo pcm_f32be vc1
dvbsub pcm_f32le vcr1
dvdsub pcm_f64be vmdaudio
dvvideo pcm_f64le vmdvideo
dxa pcm_mulaw vmnc
eacmv pcm_s16be vorbis
eatgq pcm_s16le vp3
eatgv pcm_s16le_planar vp5
eatqi pcm_s24be vp6
eightbps pcm_s24daud vp6a
eightsvx_exp pcm_s24le vp6f
eightsvx_fib pcm_s32be vqa
escape124 pcm_s32le wavpack
ffv1 pcm_s8 wmav1
ffvhuff pcm_u16be wmav2
flac pcm_u16le wmv1
wmv2 xan_dpcm xsub
wmv3 xan_wc3 zlib
wnv1 xl zmbv
ws_snd1
Enabled encoders:
ac3 mjpeg pcm_u32be
adpcm_adx mp2 pcm_u32le
adpcm_g726 mpeg1video pcm_u8
adpcm_ima_qt mpeg2video pcm_zork
adpcm_ima_wav mpeg4 pgm
adpcm_ms msmpeg4v1 pgmyuv
adpcm_swf msmpeg4v2 png
adpcm_yamaha msmpeg4v3 ppm
alac pam qtrle
asv1 pbm rawvideo
asv2 pcm_alaw roq
bmp pcm_f32be roq_dpcm
dnxhd pcm_f32le rv10
dvbsub pcm_f64be rv20
dvdsub pcm_f64le sgi
dvvideo pcm_mulaw snow
flv mxf roq
framecrc mxf_d10 swf
gif null tg2
gxf nut tgp
h261 ogg vc1t
h263 pcm_alaw voc
h264 pcm_f32be wav
image2 pcm_f32le yuv4mpegpipe
image2pipe pcm_f64be
Enabled protocols:
file http tcp
gopher pipe
Enabled filters:
crop
Enabled bsfs:
dump_extradata mov2textsub noise
h264_mp4toannexb mp3_header_compress remove_extradata
imx_dump_header mp3_header_decompress text2movsub
mjpega_dump_header
Enabled indevs:
pr: -- empty file
Enabled outdevs:
pr: -- empty file
License: LGPL
Creating config.mak and config.h...
# make
make: Fatal error in reader: Makefile, line 5: Unexpected end of line seenI have the same issue, but will be trying the instructions in the link attached:
http://chrismiles.livejournal.com/25439.html -
Vncserver not working for me in latest solaris 10 on sparc
Hello,
This is Solaris 10 running on <142909-17> sun4u sparc SUNW,Sun-Fire-V440
When I(non root user) run vncserver, I get below message,
New 'servername:1 (nonrootuser)' desktop is servername:1
Starting applications specified in /home/nonrootuser/.vnc/xstartup
Log file is /home/nonrootuser/.vnc/servername:1.log
which looks good, isn't it! But then I can't connect to :1 so I run another 'vncserver' command , but to my surprise I get same o/p message as above?? And this continues to be like that no matter how many times I run vncserver. (displauy number always remains :1 and it doesn't work using vncviewer.
Log in .vnc directory :
28/06/11 08:26:43 Xvnc version 3.3.tight1.2.9
28/06/11 08:26:43 Copyright (C) 1999 AT&T Laboratories Cambridge.
28/06/11 08:26:43 Copyright (C) 2000-2002 Constantin Kaplinsky.
28/06/11 08:26:43 All Rights Reserved.
28/06/11 08:26:43 See http://www.uk.research.att.com/vnc for information on VNC
28/06/11 08:26:43 See http://www.tightvnc.com for TightVNC-specific information
28/06/11 08:26:43 Desktop name 'servername:1 (nonrootuser)' (servername:1)
28/06/11 08:26:43 Protocol version supported 3.3
28/06/11 08:26:43 Listening for VNC connections on TCP port 5901
Font directory '/usr/openwin/lib/X11/fonts/Speedo/' not found - ignoring
Font directory '/usr/openwin/lib/X11/fonts/Type1/' not found - ignoring
Font directory '/usr/openwin/lib/X11/fonts/75dpi/' not found - ignoring
Font directory '/usr/openwin/lib/X11/fonts/100dpi/' not found - ignoring
Fatal server error:
could not open default font 'fixed'
(gnome-session:15964): Gtk-WARNING **: cannot open display:
Can anyone please help?I find some of the essential files were missing in fonts dir, for example some files are missing in below directory as well as other fonts directories
/usr/openwin/lib/X11/fonts/Speedo $ 09:04 AM]ls -al
total 1062
drwxr-xr-x 2 root bin 512 Jun 9 20:21 .
drwxr-xr-x 15 root bin 512 Jun 9 20:26 ..
-rw-r--r-- 1 root bin 73994 Dec 15 2004 font0419.spd
-rw-r--r-- 1 root bin 73570 Dec 15 2004 font0582.spd
-rw-r--r-- 1 root bin 74266 Dec 15 2004 font0583.spd
-rw-r--r-- 1 root bin 73686 Dec 15 2004 font0611.spd
-rw-r--r-- 1 root bin 59472 Dec 15 2004 font0648.spd
-rw-r--r-- 1 root bin 61214 Dec 15 2004 font0649.spd
-rw-r--r-- 1 root bin 59460 Dec 15 2004 font0709.spd
-rw-r--r-- 1 root bin 61065 Dec 15 2004 font0710.spd
-rw-r--r-- 1 root bin 564 Dec 15 2004 fonts.scale
So I checked if the packages were installed on solaris 10, and to my surprise they were installed, confirmed by pkginfo
pkginfo | grep SUNWxwfnt
system SUNWxwfnt X Window System platform required fonts
pkginfo | grep SUNWxwoft
system SUNWxwoft X Window System optional fonts
Thinking that these pkgs did not install fully although it shows that these are installed, I still decide to install them again,
pkgadd -d . SUNWxwfnt
Processing package instance <SUNWxwfnt> from </tmp>
X Window System platform required fonts(sparc) 6.6.2.7400,REV=0.2004.12.15
Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
This appears to be an attempt to install the same architecture and
version of a package which is already installed. This installation
will attempt to overwrite this package.
The installation of this package was previously terminated and
installation was never successfully completed.
Do you want to continue with the installation of <SUNWxwfnt> [y,n,?] y
Using </usr> as the package base directory.
## Processing package information.
## Processing system information.
378 package pathnames are already properly installed.
## Verifying package dependencies.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
This package contains scripts which will be executed with super-user
permission during the process of installing this package.
Do you want to continue with the installation of <SUNWxwfnt> [y,n,?] y
Installing X Window System platform required fonts as <SUNWxwfnt>
## Installing part 1 of 1.
[ verifying class <fontsdir> ]
[ verifying class <fontsalias> ]
[ verifying class <encodingsdir> ]
[ verifying class <ttmapsdir> ]
Installation of <SUNWxwfnt> was successful.
-bash-3.00# pkgadd -d . SUNWxwoft
Processing package instance <SUNWxwoft> from </tmp>
X Window System optional fonts(sparc) 6.6.2.7400,REV=0.2004.12.15
Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
This appears to be an attempt to install the same architecture and
version of a package which is already installed. This installation
will attempt to overwrite this package.
The installation of this package was previously terminated and
installation was never successfully completed.
Do you want to continue with the installation of <SUNWxwoft> [y,n,?] y
Using </usr> as the package base directory.
## Processing package information.
## Processing system information.
480 package pathnames are already properly installed.
## Verifying package dependencies.
## Verifying disk space requirements.
## Checking for conflicts with packages already installed.
## Checking for setuid/setgid programs.
This package contains scripts which will be executed with super-user
permission during the process of installing this package.
Do you want to continue with the installation of <SUNWxwoft> [y,n,?] y
Installing X Window System optional fonts as <SUNWxwoft>
## Installing part 1 of 1.
[ verifying class <fontsdir> ]
[ verifying class <fontsalias> ]
Installation of <SUNWxwoft> was successful.
Now checking fonts directory,
/usr/openwin/lib/X11/fonts/Speedo $ 09:10 AM]ls -al
total 1068
drwxr-xr-x 2 root bin 512 Jun 28 09:09 .
drwxr-xr-x 15 root bin 512 Jun 9 20:26 ..
-rw-r--r-- 1 root bin 73994 Dec 15 2004 font0419.spd
-rw-r--r-- 1 root bin 73570 Dec 15 2004 font0582.spd
-rw-r--r-- 1 root bin 74266 Dec 15 2004 font0583.spd
-rw-r--r-- 1 root bin 73686 Dec 15 2004 font0611.spd
-rw-r--r-- 1 root bin 59472 Dec 15 2004 font0648.spd
-rw-r--r-- 1 root bin 61214 Dec 15 2004 font0649.spd
-rw-r--r-- 1 root bin 59460 Dec 15 2004 font0709.spd
-rw-r--r-- 1 root bin 61065 Dec 15 2004 font0710.spd
-rw-r--r-- 1 root other 565 Jun 28 09:09 fonts.alias
-rw-r--r-- 1 root bin 549 Dec 15 2004 fonts.alias.all
-rw-r--r-- 1 root bin 564 Dec 15 2004 fonts.dir
-rw-r--r-- 1 root bin 564 Dec 15 2004 fonts.scale
There you go, files are there now. Weird isn't it?
Now I run vncserver and it works meaning it gives me newer display numbers everytime I run it.
Issue is resolved. Thanks for reading :) -
Oracle 9 for Solaris (Intel) x86?
Did oracle drop support for Solaris (Intel) x86? I run a shop with a large scale intel server running Solaris 9 (x86) and would like to try out Oracle 9i on it.
Please advise: [email protected]
Thanks!You can find information about Oracle product certifications here,
http://otn.oracle.com/support/metalink/content.html
You can also find information about desupported platforms in the same place. This link is available from "Get Support" navigation element on OTN home page. -
Installing Adobe Type 1 Fonts on Solaris
We want to install ocra fonts on a workstation running Solaris 10. Currently the fonts are installed in a Solaris 8 server in:
/usr/openwin/lib/X11/fonts/Type1
On the workstation, we ftp'd the files from the server to /tmp on the workstation. We ran /usr/dt/bin/sdtfontadm and tried to use it to install the fonts. When you select install, 'Go To' /tmp and click 'Choose,'
we get a segmentation core dump. We have called this into Sun as a separate issue.
So we tried the manual way as described in IDAutomation.com (Installing Fonts on UNIX for Oracle Reports) and Oracle (Doc ID: 171464.1)
Both are pretty much the same. The following are the instructions:
1) copy ocra.pfa to /usr/openwin/lib/X11/fonts/Type1/outline
2) chown root:bin; chmod 644
3) Create a link of the file to /usr/openwin/lib/X11/fonts/Type1
4) Edit fonts.scale and add 1 to the number on top of the file.
5) add the following line:
ocra-pfa -adobe-ocra-medium-r-normal--0-0-0-0-p-0-iso8859-1
6) Run: /usr/openwin/bin/mkfontdir
7) Run: /usr/openwin/bin/xset fp rehash
8) Verify the font installation using /usr/dt/bin/sdtfontadm
When we run step 8, the font is there but the example tesxt is not OCR but courier.
We tried reformatting the workstation (due to the core dump) and setting it up to default to en_iso8859-1.
Can anyone help with this?
Thanks!
FrankWindows Type 1 fonts each consist of two files, a .pfb file containing the font itself and a .pfm file containing extended font metrics used for formatting text on the host computer. If you don't have both files for a particular font, the font is uninstallable and unusable. To install a Type 1 font on a Windows system, the .pfb and .pfm for the font should be in the same directory. Right click on the font and click on Install or Install as shortcut. Install copies the two files to the \Windows\Fonts directory and subsequently uses the font from that location. Install as shortcut uses the font from the location the files are currently located in with the caveat that you must keep those files in that location or else the fonts will no longer be accessible.
If you actually attempted to install Adobe Type Manager on 32-bit Windows 7 (or later) system, you may have destroyed your system's ability to properly install and use Type 1 fonts at all. If this has happened, you may need to reinstall Windows! (If I recall correctly, the installer for ATM refuses to run at all on Windows 64-bit versions, sparing you the destruction of your Type 1 rendering!)
- Dov -
Upgrade from 9i to 10g, solaris 8 listener problems now...
I recently upgraded some databases from 9i to 10g. In an attempt to punt
on the 9i listener - I attempted to start the 10g version of the listener
which is producing the following error:
-----paste
lsnrctl startLSNRCTL for Solaris: Version 10.1.0.2.0 - Production on 15-AUG-2004
15:13:03
Copyright (c) 1991, 2004, Oracle. All rights reserved.
Starting /data/oracle/app/oracle/product/10g/bin/tnslsnr: please wait...
TNSLSNR for Solaris: Version 10.1.0.2.0 - Production
Log messages written to
/data/oracle/app/oracle/product/10g/network/log/listener.log
Listening on:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host.place.com)(PORT=1521)))
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
TNS-01114: LSNRCTL could not perform local OS authentication with the
listener
-----/paste
Looking into the logs I see:
-----paste
TNSLSNR for Solaris: Version 10.1.0.2.0 - Production on 15-AUG-2004
15:13:03
Copyright (c) 1991, 2004, Oracle. All rights reserved.
Log messages written to
/data/oracle/app/oracle/product/10g/network/log/listener.log
Trace information written to
/data/oracle/app/oracle/product/10g/network/trace/listener.trc
Trace level is currently 0
Started with pid=524
Listening on:
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=host.place.com)(PORT=1521)))
TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE
15-AUG-2004 15:13:03 *
(CONNECT_DATA=(CID=(PROGRAM=)(HOST=host)(USER=oracle))(COMMAND=status)(ARGUM
ENTS=64)(SERVICE=LISTENER)(VERSION=168821248))
* status * 1189
TNS-01189: The listener could not authenticate the user
TNS-12537: TNS:connection closed
TNS-12560: TNS:protocol adapter error
TNS-00507: Connection closed
-----/paste
I've read on this list that it might be a shared_memory_pool problem, So I
think I've maxed out the mount of shared memory. This is a Sun Fire V240
with 8G RAM, so /etc/system has:
*set shmsys:shminfo_shmmax=268435456
*set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmax=8254455808
set shmsys:shminfo_shmmin=200
*set shmsys:shminfo_shmmni=200
set shmsys:shminfo_shmmni=1024
set shmsys:shminfo_shmseg=1024
set semsys:seminfo_semmap=250
set semsys:seminfo_semmni=500
set semsys:seminfo_semmsl=500
set semsys:seminfo_semmns=2000
set semsys:seminfo_semmnu=500
set semsys:seminfo_semume=100
set semsys:seminfo_semvmx=32767
set semsys:seminfo_semopm=100
set noexec_user_stack = 1
I am totally at a loss as to what the issue might be save some new tags
needed in listener.ora... Any pointers/help more than welcome...
Ianwell, oracle's path seems to see 10g's version of the listener:
hosts% which lsnrctl
/data/oracle/app/oracle/product/10g/bin/lsnrctl
I'm running this on the same host. ie loopback.
After the error, the listener seems to be in the process table - but nothing can talk to it:
oracle 856 818 0 20:05:06 pts/2 0:00 egrep lsnr
oracle 838 1 0 19:57:26 ? 0:00 /data/oracle/app/oracle/product/10g/bin/tnslsnr LISTENER -inherit
my listener.ora has:
# listener.ora Network Configuration File: /data/oracle/app/oracle/product/10g/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /data/oracle/app/oracle/product/10g)
(PROGRAM = extproc)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host.place.com)(PORT = 1521))
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /data/oracle/app/oracle/product/10g)
(PROGRAM = extproc)
(SID_DESC =
(GLOBAL_DBNAME = erdos)
(ORACLE_HOME = /data/oracle/app/oracle/product/10g)
(SID_NAME = simora1)
(SID_DESC =
(GLOBAL_DBNAME = datamine)
(ORACLE_HOME = /data/oracle/app/oracle/product/10g)
(SID_NAME = datamine)
(SID_DESC =
(GLOBAL_DBNAME = interpnt.place.com)
(ORACLE_HOME = /data/oracle/app/oracle/product/10g)
(SID_NAME = interpnt)
tnsnames has:
DATAMINE.PLACE.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = erdos.place.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = datamine)
EXTPROC_CONNECTION_DATA.PLACE.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
INST1_HTTP.PLACE.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = erdos.place.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = MODOSE)
(PRESENTATION = http://HRService)
INTERPNT.PLACE.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = erdos.place.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = interpnt.place.com)
ERDOS.PLACE.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = erdos.place.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = erdos)
SCALES03 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = scales-a.place.com)(PORT = 1521))
(CONNECT_DATA =
(SID=SCALES03)
(SERVICE_NAME = SCALES03) -
Any bad side-effects to lengthy blocking in native code? (Win32,Linux,Solar
1) Are there any negative side-effects to having one (or maybe a few) Java threads block for an extended period (e.g. hours) in native code? Naturally the thread would NOT be one of the "special" threads (such as the Swing event dispatcher, etc).
2) Does the answer vary by platform? I'm interested in Win32, Linux and possibly Solaris (in that order).
3) What if I scale the number of threads blocked in JNI code up to 100 threads. Does that change any of the answers? This is perhaps a silly number, I'm just trying to understand if more resources are consumed by blocking in the JNI as opposed to blocking in Java.
4) Do modern JVM's use one native thread per Java thread? If so, then I would guess there is really nothing special about blocking in native code.
Motivation for query -- In my application I need to interface with legacy C++ code that blocks (mostly on socket and i/o selects). I'm not thrilled about native code, but if there are no serious side-effects to extended blocking, it may be a viable approach.1) Are there any negative side-effects to having one
(or maybe a few) Java threads block for an extended
period (e.g. hours) in native code? Naturally the
thread would NOT be one of the "special" threads (such
as the Swing event dispatcher, etc).As far as I know the native code is loaded dynamic when a thread will use it.
So if the thread 1 needs the code written in the native.dll the thread 1 will use
the first instance of native.dll. So let's say this is blocked.
Then after 2 hours another thread called thread2 calls the native.dll code. Then
java ask the OS to create another instance of the native.dll and so on.
So now there are 2 threads and 2 instances of the dll in the memory.
All these apply to the Win32 OSs.
>
2) Does the answer vary by platform? I'm interested
in Win32, Linux and possibly Solaris (in that order).
3) What if I scale the number of threads blocked in
JNI code up to 100 threads. Does that change any of
the answers? This is perhaps a silly number, I'm just
trying to understand if more resources are consumed by
blocking in the JNI as opposed to blocking in Java.
If your machine could suffer 100 pure java threads then it is not a problem to be some of them JNI ones.
4) Do modern JVM's use one native thread per Java
thread? Yes. Exactly as far as I know and experienced.
If so, then I would guess there is really
nothing special about blocking in native code.Exactly.
>
>
Motivation for query -- In my application I need to
interface with legacy C++ code that blocks (mostly on
socket and i/o selects). I'm not thrilled about
native code, but if there are no serious side-effects
to extended blocking, it may be a viable approach.Yes it is. That is actually why Native methods are existing for. -
Solaris Kernel and TCP/IP Tuning Parameters (Continued)
This page describes some configuration optimizations for Solaris hosts running ATG Page Serving instances (application servers) that will increase server efficiency.
Note that these changes are specific to Solaris systems running ATG application servers (+page serving+ instances). Do not use these on a web server or database server. Those systems require entirely different settings.
h3. Solaris 10 Kernel
Adjust /etc/system (parameters below) and reboot the system.
set rlim_fd_cur=4096
set rlim_fd_max=4096
set tcp:tcp_conn_hash_size=32768
set shmsys:shminfo_shmmax=4294967295
set autoup=900
set tune_t_fsflushr=1h4. Set limits on file descriptors
{color:blue}set rlim_fd_max = 4096{color}
{color:blue}set rlim_fd_cur = 4096{color}
Raise the file-descriptor limits to a maximum of 4096. Note that this tuning option was not mentioned in the "Sun Performance And Tuning" book.
[http://download.oracle.com/docs/cd/E19082-01/819-2724/chapter2-32/index.html]
h4. Increase the connection hash table size
{color:blue}set tcp:tcp_conn_hash_size=8192{color}
Increase the connection hash table size to make look-up's more efficient. The connection hash table size can be set only once, at boot time.
[http://download.oracle.com/docs/cd/E19455-01/816-0607/chapter4-63/index.html]
h4. Increase maximum shared memory segment size
{color:blue}set shmsys:shminfo_shmmax=4294967295{color}
Increase the maximum size of a system V shared memory segment that can be created from roughly 8MB to 4GB.
This provides an adequate ceiling; it does not imply that shared memory segments of this size will be created.
[http://download.oracle.com/docs/cd/E19683-01/816-7137/chapter2-74/index.html]
h4. Increase memory allocated for dirty pages
{color:blue}set autoup=900{color}
Increase the amount of memory examined for dirty pages in each invocation and frequency of file system synchronizing operations.
The value of autoup is also used to control whether a buffer is written out from the free list. Buffers marked with the B_DELWRI flag (which identifies file content pages that have changed) are written out whenever the buffer has been on the list for longer than autoup seconds. Increasing the value of autoup keeps the buffers in memory for a longer time.
[http://download.oracle.com/docs/cd/E19082-01/819-2724/chapter2-16/index.html]
h4. Specify the time between fsflush invocations
Specifies the number of seconds between fsflush invocations.
{color:blue}set tune_t_fsflushr=1{color}
[http://download.oracle.com/docs/cd/E19082-01/819-2724/chapter2-105/index.html]
Again, note that after adjusting any of the preceding kernel parameters you will need to reboot the Solaris server.
h3. TCP
ndd -set /dev/tcp tcp_time_wait_interval 60000
ndd -set /dev/tcp tcp_conn_req_max_q 16384
ndd -set /dev/tcp tcp_conn_req_max_q0 16384
ndd -set /dev/tcp tcp_ip_abort_interval 60000
ndd -set /dev/tcp tcp_keepalive_interval 7200000
ndd -set /dev/tcp tcp_rexmit_interval_initial 4000
ndd -set /dev/tcp tcp_rexmit_interval_max 10000
ndd -set /dev/tcp tcp_rexmit_interval_min 3000
ndd -set /dev/tcp tcp_smallest_anon_port 32768
ndd -set /dev/tcp tcp_xmit_hiwat 131072
ndd -set /dev/tcp tcp_recv_hiwat 131072
ndd -set /dev/tcp tcp_naglim_def 1h4. Tuning the Time Wait Interval and TCP Connection Hash Table Size
{color:blue}/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 60000{color}
The tcp_time_wait_interval is how long a connection stays in the TIME_WAIT state after it has been closed (default value 240000 ms or 4 minutes). With the default setting, this socket will remain for 4 minutes after you have closed the FTP connection. This is normal operating behavior. It is done to ensure that any slow packets on the network will arrive before the socket is completely shutdown. As a result, a future program that uses the same socket number won't get confused upon receipt of packets that were intended for the previous program.
On a busy Web server a large backlog of connections waiting to close could build up and the kernel can become inefficient in locating an available TCP data structure. Therefore it is recommended to change this value to 60000 ms or 1 minute.
h4. Tuning the maximum number of requests per IP address per port
{color:blue}ndd -set /dev/tcp tcp_conn_req_max_q 16384{color}
{color:blue}ndd -set /dev/tcp tcp_conn_req_max_q0 16384{color}
The {color:blue}tcp_conn_req_max_q{color} and {color:blue}tcp_conn_req_max_q0{color} parameters are associated with the maximum number of requests that can be accepted per IP address per port. tcp_conn_req_max_q is the maximum number of incoming connections that can be accepted on a port. tcp_conn_req_max_q0 is the maximum number of “half-open” TCP connections that can exist for a port. The parameters are separated in order to allow the administrator to have a mechanism to block SYN segment denial of service attacks on Solaris.
The default values are be too low for a non-trivial web server, messaging server or directory server installation or any server that expects more than 128 concurrent accepts or 4096 concurrent half-opens. Since the ATG application servers are behind a DMZ firewall, we needn't starve these values to ensure against DOS attack.
h4. Tuning the total retransmission timeout value
{color:blue}ndd -set /dev/tcp tcp_ip_abort_interval 60000{color}
{color:blue}tcp_ip_abort_interval{color} specifies the default total retransmission timeout value for a TCP connection. For a given TCP connection, if TCP has been retransmitting for tcp_ip_abort_interval period of time and it has not received any acknowledgment from the other endpoint during this period, TCP closes this connection.
h4. Tuning the Keep Alive interval value
{color:blue}ndd -set /dev/tcp tcp_keepalive_interval 7200000{color}
{color:blue}tcp_keepalive_interval{color} sets a probe interval that is first sent out after a TCP connection is idle on a system-wide basis.
If SO_KEEPALIVE is enabled for a socket, the first keep-alive probe is sent out after a TCP connection is idle for two hours, the default value of the {color:blue}tcp_keepalive_interval{color} parameter. If the peer does not respond to the probe after eight minutes, the TCP connection is aborted.
The {color:blue}tcp_rexmit_interval_*{color} values set the initial, minimum, and maximum retransmission timeout (RTO) values for a TCP connections, in milliseconds.
h4. Tuning the TCP Window Size
{color:blue}/usr/sbin/ndd -set /dev/tcp tcp_xmit_hiwat 65535{color}
{color:blue}/usr/sbin/ndd -set /dev/tcp tcp_recv_hiwat 65535{color}
Setting these two parameters controls the transmit buffer and receive window. We are tuning the kernel to set each window to 65535 bytes. If you set it to 65536 bytes (64K bytes) or more with Solaris 2.6, you trigger the TCP window scale option (RFC1323).
h4. Tuning TCP Slow Start
{color:blue}/usr/sinb/ndd -set /dev/tcp tcp_slow_start_initial 4{color}
tcp_slow_start_initial is the number of packets initially sent until acknowledgment, the congestion window limit.
h4. Tuning the default bytes to buffer
{color:blue}ndd -set /dev/tcp tcp_naglim_def 1{color}
{color:blue}tcp_naglim_def{color} is the default number of bytes to buffer. Each connection has its own copy of this value, which is set to the minimum of the MSS for the connection and the default value. When the application sets the TCP_NODELAY socket option, it changes the connection's copy of this value to 1. The idea behind this algorithm is to reduce the number of small packets transmitted across the wire by introducing a short (100ms) delay for packets smaller than some minimum.
Changing the value of tcp_naglim_def to 1 will have the same effect (on connections established after the change) as if each application set the TCP_NODELAY option.
{note}
The current value of any of the TCP parameters can be displayed with the command ndd get. So to retrieve the current setting of the {color:blue}tcp_naglim_def parameter{color}, simply execute the command:\\
{color:blue}ndd -get /dev/tcp tcp_naglim_def{color}
{note}
h3. References
Solaris Tunable Parameters Reference Manual
[http://download.oracle.com/docs/cd/E19455-01/816-0607/index.html]
WebLogic Server Performance and Tuning
[http://download.oracle.com/docs/cd/E11035_01/wls100/perform/OSTuning.html]For example,
Socket.setSoTimeout() sets SO_TIMEOUT option and I
want to what TCP parameter this option corresponds in
the underlying TCP connection.This doesn't correspond to anything in the connection, it is an attribute of the API.
The same questions
arises fro other options from SocketOptions class.setTcpNoDelay() controls the Nagle algorithm. set{Send,Receive}BufferSize() controls the local socket buffers.
Most of this is quite adequately described in the javadoc actually. -
Fonts in Solaris/Exceed/X-window(Maby standard fonts?)
Hey
I use Styled document where i set the font family to "Arial" and the size to 2*Scale(Scale = 1-10)
when running this in windowsit works well, but on the Solaris/Exceed/X-window it dont. It have the same size all the time!
Probely it is not even using "Arial".
Is ther any standard fonts that i can scale?
I have look in the Xconfig of the hummingbird/Exceed program and then fonts. there i find fonts like
font db file
100dpi
latin1
andrew
and so on
if i dubbel klick on one of them i get a list of fonts in diffrent sizes like this
carb08
carb10
carb12
carb14
and so on.
How could i solve my problem? shold i just choose a name like carb10 and switch it with the "Arial" in the code? and can i scale this fonts or do i have to choose the right font size to?
//SnowJimYes that would be great, but i am not able to install fonts on the solaris machine.
Is there no other way? i dont have to use the sam font as in Windows, but a font that is scale able and as Arial as posible.
//SnowJim -
Weblogic 5.1 sp3 with Apache or Stronghold on Solaris 2,7
Hi All,
We are planning to use Apache or Stronghold(most probably Stronghold as it
supports SSL which I was told Apache does not support) and WebLogic 5.1 sp
3. Has anyone used this combination before if so we would like to know if
you have faced any integration issues with this ? If you do what kind of
integration issues were they ? Just connection related or scalability
related ? Has anyone used WebLogic built-in webservevr in production
environment ? How does it scale up ?
Thanks
PrasadWould you please let me know when exactly(date) the sp4 was released
Thanks,
Ravi.
Vinod Mehra <[email protected]> wrote:
Checkout the 510 service pack 4. It has these binaries:
1. mod_wl.so for standard Apache (non EAPI) installations
2. mod_wl_ssl.so for Apache + SSL/EAPI installations(Stronghold, modssl etc)
3. mod_wl_ssl_raven.so for Apache + Raven installations
mod_wl_ssl_raven.so was required because Raven applies frontpage patches which
makes it incompatible with mod_wl_ssl.so
--Vinod.
Filip Hanik wrote:
Apache supports SSL with two implementations
1. http://www.apache-ssl.org/
2. Apache with OpenSSL (mod_ssl)
On Solaris there are no problems integrating weblogic and Apache.
I would not recommend using the weblogic web server, the performance of image
streaming and serving static webpages is not the greatest - apache will do a
much better job for you.
Weblogic also has a plug in for apache on Solaris that supports fail over. ie.
if one of your weblogic server goes down then apache can reconnect to another
one
Filip Hanik
[email protected]
In article <396a70f4$[email protected]>,
[email protected] says...
Hi All,
We are planning to use Apache or Stronghold(most probably Stronghold as it
supports SSL which I was told Apache does not support) and WebLogic 5.1 sp
3. Has anyone used this combination before if so we would like to know if
you have faced any integration issues with this ? If you do what kind of
integration issues were they ? Just connection related or scalability
related ? Has anyone used WebLogic built-in webservevr in production
environment ? How does it scale up ?
Thanks
Prasad -
BerkeleyDB cache size and Solaris
I am having problems trying to scale up an application that uses BerkelyDB-4.4.20 on Sun Sparc servers running Solaris 8 and 9.
The application has 11 primary databases and 7 secondary databases.
In different instances of the application, the size of the largest pimary database
ranges only from 2MB to 10MB, but those will grow rapidly over the
course of the semester.
The servers have 4-8 GB of RAM and 12-20 GBytes of swap.
Succinctly, when the primary databases are small, the application runs as expected.
But as the primary databases grow, the following, counterintuitive phenomenon
occurs. With modest cache sizes, the application starts up, but throws
std::exceptions of "not enough space" when it attempts to delete records
via a cursor. The application also crashes randomly returning
RUN_RECOVERY. But when the cache size is increased, the application
will not even start up; instead, it fails and throws std::exceptions which say there
is insufficient space to open the primary databases.
Here is some data from a server that has 4GB RAM with 2.8 GBytes free
(according to "top") when the data was collected:
DB_CONFIG............db_stat -m.................................Result
set_cachesize........Pool......Ind. Cache
0 67108864 1.........80 MB.......8 KB................Starts but crashes and can't delete by
.....................................................................cursor because of insufficient space
0 134217728 1.......160 MB......8 KB.................Same as case above
0 268435456 1........320 MB.....8 KB.................Doesn't start and says there is
......................................................................not enough space to open a primary
......................................................................database.
0 536870912 1.........512 MB...16 KB.................Doesn't start and says there is
......................................................................not enough space to open a primary
......................................................................database (although it mentions a
......................................................................different primary database than before.
1 073741884 1........1GB 70MB....36 KB............Doesn't start and says there is
......................................................................not enough space to open a primary
......................................................................database (although it mentions a
......................................................................different pimary database than
......................................................................previously).
2 147483648 1.........2GB 140MB...672 KB........Doesn't start and says there is
......................................................................not enough space to open a primary
......................................................................database (although it mentions a
......................................................................different pimary database than
......................................................................previously).
I should also mention that the application is written in Perl and uses
the Sleepycat::Db Perl module to interface with the BerkeleyDB C++ API.
Any help on how to interpret this data and, if the problem is the
interface with Solaris, how to tweak that, will be greatly appreciated.
Sincerely,
Bill Wheeler, Department of Mathematics, Indiana University, Bloomington.Having found answers to my questions, I think I should document them here.
1. On the matter of the error message "not enough space", this message
apparently orginates from Solaris. When a process (e.g., an Apache child)
requests additional (virtual) memory (via either brk or mmap) such that the
total (virtual) memory allocated to the process would exceed the system limit
(set by the setrlimit command), then the Solaris kernel rejects the request
and returns the error ENOMEM . Somewhat cryptically, the text for this error
is "not enough space" (in contrast, for instance, to "not enough virtual
memory").
Apparently, when the BerkeleyDB cache size is set too large, a process
(e.g., an Apache child) that attempts to open the environment and databases
may request a total memory allocation that exceeds the system limit.
Then Solaris will reject the request and return the ENOMEM error.
Within Solaris, the only solutions are apparently
(i) to decrease the cache size or
(ii) to increase the system limit via the setrlimit command.
2. On the matter of the DB_RUNRECOVERY errors, the cause appears
to have been the use of the DB_TXN_NOWAIT flag in combination with
code that was mishandling some of the resulting, complex situations.
Sincerely,
Bill Wheeler -
Very-large-scale searching in J2EE
I'm looking to solve a very-large-scale searching problem. I am creating a site
where users can search a table with five million records, filtering and sorting
independantly on ten different columns. For example, the table might be five million
customers, and the user might choose "S*" for the last name, and sort ascending
on street name.
I have read up on a number of patterns to solve this problem, but anticipate some
performance issues. I'll explain below:
1) "Page-by-Page Iterator" or "Value List Handler"
In this pattern, it appears that all records that match the search criteria are
retrieved from the database and cached on the application server. The client (JSP)
can then access small pieces of the cached results at a time. Issues with this
include:
- If the customer record is 1KB, then wide search criteria (i.e. last name =
S*) will cause 1 GB transfer from the database server to app server, and then
1GB being stored on the app server, cached, waiting for the user (each user!)
to ask for the next 10 or 100 records. This is inefficient use of network and
memory resources.
- 99% of the data transfered from the database server will not by used ... most
users flip through a couple of pages and then choose a record or start a new search
2) Requery the database each time and ask for a subset
I haven't seen this formalized into a pattern yet, but the basic idea is this:
If a clients asks for records 1-100 first (i.e. page 1), only fetch that many
records from the db. If the user asks for the next page, requery the database
and use the JDBC API's ResultSet.absolute(int row) to start at record 101. Issue:
The query is re-performed, causing the Oracle server to do another costly "execute"
(bad on 5M records with sorting).
To solve this, I've beed trying to enhance the second strategy above by caching
the ResultSet object in a stateful session bean. Unfortunately, this causes a
"ResultSet already closed" SQLException, although I ensure that the Connection,
PreparedStatement, and ResultSet are all stored in the EJB and not closed. I've
seen this on newsgroups ... it appears that WebLogic is forcing the Connection
closed. If this is how J2EE and pooled connections work, then that's fine ...
there's nothing I can really do about it.
Another idea is to use "explicit cursors" in Oracle. I haven't fully explored
it yet, but it wouldn't be a great solution as it would be using Oracle-specific
functionality (we are trying to be db-agnostic).
More information:
- BEA WebLogic Server 8.1
- JDBC: Oracle's thin driver provided with WLS 8.1
- Platform: Sun Solaris 5.8
- Oracle 9i
Any other ideas on how I can solve this issue?Michael McNeil wrote:
I'm looking to solve a very-large-scale searching problem. I am creating a site
where users can search a table with five million records, filtering and sorting
independantly on ten different columns. For example, the table might be five million
customers, and the user might choose "S*" for the last name, and sort ascending
on street name.
I have read up on a number of patterns to solve this problem, but anticipate some
performance issues. I'll explain below:
1) "Page-by-Page Iterator" or "Value List Handler"
In this pattern, it appears that all records that match the search criteria are
retrieved from the database and cached on the application server. The client (JSP)
can then access small pieces of the cached results at a time. Issues with this
include:
- If the customer record is 1KB, then wide search criteria (i.e. last name =
S*) will cause 1 GB transfer from the database server to app server, and then
1GB being stored on the app server, cached, waiting for the user (each user!)
to ask for the next 10 or 100 records. This is inefficient use of network and
memory resources.
- 99% of the data transfered from the database server will not by used ... most
users flip through a couple of pages and then choose a record or start a new search
2) Requery the database each time and ask for a subset
I haven't seen this formalized into a pattern yet, but the basic idea is this:
If a clients asks for records 1-100 first (i.e. page 1), only fetch that many
records from the db. If the user asks for the next page, requery the database
and use the JDBC API's ResultSet.absolute(int row) to start at record 101. Issue:
The query is re-performed, causing the Oracle server to do another costly "execute"
(bad on 5M records with sorting).
To solve this, I've beed trying to enhance the second strategy above by caching
the ResultSet object in a stateful session bean. Unfortunately, this causes a
"ResultSet already closed" SQLException, although I ensure that the Connection,
PreparedStatement, and ResultSet are all stored in the EJB and not closed. I've
seen this on newsgroups ... it appears that WebLogic is forcing the Connection
closed. If this is how J2EE and pooled connections work, then that's fine ...
there's nothing I can really do about it.
Another idea is to use "explicit cursors" in Oracle. I haven't fully explored
it yet, but it wouldn't be a great solution as it would be using Oracle-specific
functionality (we are trying to be db-agnostic).
More information:
- BEA WebLogic Server 8.1
- JDBC: Oracle's thin driver provided with WLS 8.1
- Platform: Sun Solaris 5.8
- Oracle 9i
Any other ideas on how I can solve this issue? Hi. Fancy SQL to the rescue! If the table has a unique key, you can simply send a
query per page, with iterative SQL that selects the next N rows beyond what was
selected last time. Eg:
Let variable X be the highest key value you've seen so far. Initially it would
be the lowest possible value.
select * from mytable M
where ... -- application-specific qualifications...
and M.key >= X
and (100 <= select count(*) from mytable MM where MM.key > X and MM.key < M.key and ...)
In English, this says, select all the qualifying rows higher than what I last saw, but
only those that have fewer than 100 qualifying rows between the last I saw and them (ie:
the next 100).
When processing this query, remember the highest key value you see, and use it for the
next query.
Joe -
Hi all;
I have installed solaris x86 on my home machine works well...
Now i want to change my rental dedicated server from windows to solaris web server?i dont have any idea about it?is it logical,stable and advantageous to use solaris x86 as a web server...
i will use apache,tomcat,mysql on it,webmin control panel,remote desktop to server,mail server etc...the OS must support all of them...and must have support on internet forums...
which OS you advice to me..?solaris or freebsd or linux versions?
thank you
BurakYou know, asking what nx dialect you should use in a Solaris forum is sort of daring.
All of the softwares you listed works on Solaris, with the possible exeption of remote desktop, which is a windows product used for windows servers. On the otherhand nx has several alternatives to remote desktops, and being unix, they don't really need one anyway.
In general i think its a bad idea to ask people what you should run on your server, there are a lot of religous people out here, and everyone will claim that their unix dialect is the best in every possible way, and that everyone who disagrees with them are either lame, stupid, managers or all of it.
This actually gets quite entertaining when it comes to Linux, since different groups will also argue that THEIR Linux is the only usable and that everything else is crap.
Anyway.
My advice is that you look on what features you want, which platform you feel most comfortable with and what you want to be able to do. Solaris for one thing can be very heavily loaded, scales extremeny well and comes with tons of nice features like Zones, which is a good thing if you have many IP addresses and don't want different webservers to be in the same zone.
7/M.
Maybe you are looking for
-
Define Service Desk destinition in Solution manger system
Hello Guys, We are in to the implementation of SERVICE DESK Implementiation. When we are trying in Defining Service Desk destinition in solution manager system we found that there is no EXECUTE button. In my finding i found there is a missing the pa
-
Creation of Infotyoes with subtypes
Hi, My requirement is to create a custom infotype which has 6 subtypes. The timeconstraint for the main infotype should be T. Please could anyone help me in this . Thanks, Saher
-
Contact info not showing in messages
Since upgrading to IOS7 my ipad will not show contact info for messages. On my iphone the upgrade works fine.
-
Populate select list when a date selected from date picker in tabular form
Hi Guys, I have a situation where user picks a date from a date picker in tabular form. So as soon as he picks a date say 05/31/2011 from the date picker I want to populate a select list with 2 values : Tuesday AM , Tuesday PM. I have gone through th
-
Hi, I've just downloaded (from otn web site) and installed (on my winxp pro notebook) html db to a just created 10g personal edition db. I'm not able to find the right url to login to html db ... the url http://hostname:7778/pls/htmldb/htmldb_login d