blogs.sun.com

Prenumerera på innehåll
Welcome to Blogs.sun.com! This space is accessible to any Sun employee to write about anything.
Webbadress: http://blogs.sun.com
Uppdaterad: 1 tim 32 min gammalt

Script to check CPU cores ownership on Oracle's Sun SPARC Enterprise T-Series systems

ons, 2010-08-25 11:00

There are few scripts in my test lab which I am using while running tests. While most of them are very specific, there is one which may be of interest for you. This script is specific to T-series servers (T2 and T2 Plus processors) running Oracle VM Server for SPARC. This script allows you to verify if any CPU core is shared between two or more logical domains. If CPU threads from the same CPU core are assigned to different logical domains, then this can reduce the efficiency of these CPU threads. The reason for this is that single CPU core have memory cache shared between CPU threads belonging to this core. Cache Thrashing occurs when two programs are using cache for different memory pages and the load is very heavy.

Lets check how it works:

First, we have two guest domains configured and each guest domain have 16 CPU threads assigned to it.

# ldm ls NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME primary          active     -n-cv-  SP      24    8000M    0.7%  1d 2h 27m ldg1             active     -n----  5000    16    15996M   2.4%  1d 17m ldg2             active     -n----  5001    16    15996M   8.1%  2d 2h 48m

Cores are distributed between domains in the following way as script reports:

# ./check_core_assignment.pl Core 0 used by primary Core 1 used by primary Core 2 used by primary Core 12 used by ldg2 Core 13 used by ldg2 Core 14 used by ldg1 Core 15 used by ldg1

Lets add 1 CPU thread to domain ldg1 and ldg2:

# ldm add-vcpu 1 ldg1 # ldm add-vcpu 1 ldg2 # ldm ls NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME primary          active     -n-cv-  SP      24    8000M    0.4%  1d 2h 47m ldg1             active     -n----  5000    17    15996M   2.4%  1d 37m ldg2             active     -n----  5001    17    15996M   7.7%  2d 3h 8m

And check what script will report:

# ./check_core_assignment.pl Core 0 used by primary Core 1 used by primary Core 2 used by primary Core 3 used by ldg1 ldg2 MultiUsage detected Core 12 used by ldg2 Core 13 used by ldg2 Core 14 used by ldg1 Core 15 used by ldg1

Oops, looks like some threads of core 3 assigned to domain ldg1 and some to domain ldg2. This might lead to performance impact.

To avoid this situation always add/remove CPU threads in multiplies of 8 (number of CPU threads in CPU core on T2 and T2 Plus platform).

The script itself:

# cat check_core_assignment.pl #!/usr/bin/perl @AllCores = (); open(DOM, "ldm ls -p|") || die "failed to get domains"; while (<DOM>) {         if ( m/DOMAIN\|name=([^\|]*)/ )         {                 $domain = $1;                 open(CPU, "ldm ls-bindings -p $domain|") || die "failed to get cpus for $domain\n";                 while (<CPU>)                 {                         if ( m/\|vid=\d*\|pid=(\d*)/ ) {                                 $core = int($1 / 8);                                 push (@AllCores, $core) unless $seen{$core}++;                                 push (@{$Usage[$core]}, $domain) unless $seen{$core, $domain}++;                         }                 }         } } foreach $c (sort {$a <=> $b} @AllCores) {         my $mu = 0;         print "Core $c used by ";         foreach $k (sort @{$Usage[$c]}) {                 print "$k ";                 $mu++;         };         if ($mu > 1) { print "MultiUsage detected"; }         print "\n"; }

NetBeans 6.10がGlassFish 3.1他色々をサポート

ons, 2010-08-25 02:32

NetBeans 6.10の暫定的な計画がNetBeans Wikiページにて参照できます。 その機能は下記のサポートの向上を含んでいます。

• Java EE 6の全機能およびWeb Profile (詳細)
• WebLogic ServerおよびGlassFish 3.1 (詳細)
• PHP (詳細) およびJS, JSON, X/HTML, CSS (詳細)

NB 6.10は一般的な性能、品質の向上、そしてOracle DBに対するサポートの向上もまた計画しています。 全ての機能、スケジュール、および免責事項はこちらからご参照ください。

Whoa-whoa-whoa, hold the phone, timeout, rewind

ons, 2010-08-25 01:47
Here's a review about the new Nokia X3-02 cell phone. Cool phone! Error in the review.

See:

Error in Nokia X3-02 review

Here's a quote: The handset is disappointing with Java being the Operating System and not Symbian. the battery life is a little lower than usual... The phone will be available with white silver, dark metal, petrol blue and lilac colours. So, Java ME technology is a lot of things to many people and can function in many different roles (as a certain company up Highway 101 can attest). But, it is NOT the Operating System on the new Nokia X3-02. (And, it is NOT disappointing, but that's beside the point). The Nokia Series 40 (or aka S40) is the Operating System on the Nokia X3-02, and that means it is based on Symbian.

The fun and cool social apps and IM client may be the source of the confusion, since I believe those are Java ME MIDlets based on MIDP 2.1 and use the crazy delicious Java ME JSRs on the device. But, ya doesn't necessarily callz dat an Operating System, duz ya? So, in summary the Nokia X3-02 is cool and rad, because it has Java ME and Nokia Series 40. OK? Glad to get that straightened out...

GlassFish RESTful administration progress in 3.1

tis, 2010-08-24 23:24

Complete administration, from web console to rich command line (asadmin) has always been a strong set of features in GlassFish and often a key differentiator versus other application servers.

Jason Lee takes you in his blog entry through the basics and the recent development of a more recent administration feature - the RESTful admin interface.

As the name implies this feature exposes administrative and monitoring resources to HTTP clients with responses served in XML, HTML or JSON formats. Pretty much anything you can do with the web console or asadmin, you can do with this interface - observe pool usage, create data sources, deploy applications, etc.

Jason explains how this is all being enhanced in the current development of version 3.1 with dynamic instrumentation using asm and how you can use the __debug HTTP header for pretty-printing. Keep an eye on Jason's blog for more advanced topics. Grab a recent promoted build and try for yourself!

Rename Refactoring

tis, 2010-08-24 15:08

Rename is one of the most useful refactorings at all. The developer can alter the name of a selected type, type member, function, constant in the code. Users of NetBeans PHP IDE could use Instant Rename feature since 6.5 and now in daily builds the Rename Refactoring was improved to be able to rename elements not only in the scope of one file but rather lookup all appropriate occurrences in the whole project and then rename them.  Simply put caret on the identifier and press Ctrl+R. Local changes are still made instantly in-place by Instant Rename, which is true e.g. for local variables, parameters in functions or methods and the same for private type members. 

So pressing Ctrl+R for $mainModule variable invokes in-place editing, but not the same if e.g. class name should be renamed: 

Although the same shortcut Ctrl+R was used, the behavior and UI is different for renaming the class name as shown on the picture above - comparing to rename of parameter. After pressing "Preview" button the individual changes will be listed like on the next picture:

Purpose of checkboxes is probably obvious - include/exclude appropriate changes. By going through the list the individual diffs are shown:

Use "Do refactoring" to apply changes. To revert the changes Refactoring > Undo should help.

All the issues or enhancements please report in NetBeans Bugzilla

TOTD #144: CDI @Produces for container-managed @Resource

tis, 2010-08-24 11:07

Contexts & Dependency Injection (CDI) in Java EE 6 provides type-safe dependency injection. The type-safety part comes from the fact that no String-based identifiers are used for dependency injection. Instead CDI runtime uses the typing information that is already available in the Java object model.

Java EE 5 already had resource injection available in terms of PersistenceContext, PersistenceUnit, Resource, and others. But they require String-based identifiers to identify the resource to be injected. For example:

  • @PersistenceUnit(unitName="SOME_NAME")
  • @Resource(name="JNDI_NAME")
  • @WebServiceRefs(lookup="JNDI_NAME_OF_WEB_SERVICE_REF")

The main proposition of CDI is type-safety. This Tip Of The Day explains how @Produces annotation provided by CDI can be used to centralize all these String-based resource injection and add a facade of type-safety on them. Specifically, it shows how type-safety can be achieved for @PersistenceUnit. A similar approach can be taken for other String-based resource injections as well.

  1. Create a Singleton-scoped bean or Application-scoped bean as:
    import javax.inject.Singleton; @Singleton public class ApplicationResources { }
    All the Java EE component environment references can be centralized in this bean.
  2. If the PersistenceUnit is currently initialized as:
    @PersistenceUnit(unitName="StatesPU") EntityManagerFactory statesEMF;
    in other Java EE components, such as Servlet, then it can be alternatively defined in the type-safe manner using the following steps:
    1. Define a new Qualifier as:
      import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.PARAMETER; import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Retention; import java.lang.annotation.Target; import javax.inject.Qualifier; @Qualifier @Retention(RUNTIME) @Target({METHOD, FIELD, PARAMETER, TYPE}) public @interface StatesDatabase { }
    2. Add the type-safe definition of "EntityManagerFactory" in "ApplicationResources" bean (defined above) as:
      @Produces @PersistenceUnit(unitName="StatesPU") @StatesDatabase EntityManagerFactory statesEMF;
    3. The "EntityManagerFactory" can now be injected in the Servlet in a type-safe manner as:
      @Inject @StatesDatabase EntityManagerFactory emf;

This procedure can be repeated for other String-based resources as well and thus centralize all of them at one place. And now your application becomes more type-safe! With this TOTD, you can use @Inject for injecting your container- and application-managed resources easily.

Read the latest documentation on Weld (Reference Implementation for CDI and included in GlassFish) for more details.

Technorati: totd cdi javaee6 glassfish weld produces typesafety

TOTD #144: CDI @Produces for container-managed @Resource

tis, 2010-08-24 11:07

Contexts & Dependency Injection (CDI) in Java EE 6 provides type-safe dependency injection. The type-safety part comes from the fact that no String-based identifiers are used for dependency injection. Instead CDI runtime uses the typing information that is already available in the Java object model.

Java EE 5 already had resource injection available in terms of PersistenceContext, PersistenceUnit, Resource, and others. But they require String-based identifiers to identify the resource to be injected. For example:

  • @PersistenceUnit(unitName="SOME_NAME")
  • @Resource(name="JNDI_NAME")
  • @WebServiceRefs(lookup="JNDI_NAME_OF_WEB_SERVICE_REF")

The main proposition of CDI is type-safety. This Tip Of The Day explains how @Produces annotation provided by CDI can be used to centralize all these String-based resource injection and add a facade of type-safety on them. Specifically, it shows how type-safety can be achieved for @PersistenceUnit. A similar approach can be taken for other String-based resource injections as well.

  1. Create a Singleton-scoped bean or Application-scoped bean as:
    import javax.inject.Singleton; @Singleton public class ApplicationResources { }
    All the Java EE component environment references can be centralized in this bean.
  2. If the PersistenceUnit is currently initialized as:
    @PersistenceUnit(unitName="StatesPU") EntityManagerFactory statesEMF;
    in other Java EE components, such as Servlet, then it can be alternatively defined in the type-safe manner using the following steps:
    1. Define a new Qualifier as:
      import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.PARAMETER; import static java.lang.annotation.ElementType.METHOD; import static java.lang.annotation.RetentionPolicy.RUNTIME; import java.lang.annotation.Retention; import java.lang.annotation.Target; import javax.inject.Qualifier; @Qualifier @Retention(RUNTIME) @Target({METHOD, FIELD, PARAMETER, TYPE}) public @interface StatesDatabase { }
    2. Add the type-safe definition of "EntityManagerFactory" in "ApplicationResources" bean (defined above) as:
      @Produces @PersistenceUnit(unitName="StatesPU") @StatesDatabase EntityManagerFactory statesEMF;
    3. The "EntityManagerFactory" can now be injected in the Servlet in a type-safe manner as:
      @Inject @StatesDatabase EntityManagerFactory emf;

This procedure can be repeated for other String-based resources as well and thus centralize all of them at one place. And now your application becomes more type-safe! With this TOTD, you can use @Inject for injecting your container- and application-managed resources easily.

Read the latest documentation on Weld (Reference Implementation for CDI and included in GlassFish) for more details.

Technorati: totd cdi javaee6 glassfish weld produces typesafety


Pics from the Johannesburg NetBeans Platform Training

tis, 2010-08-24 09:21
Pics of the class at the latest NetBeans Platform Certified Training in Johannesburg:

Here is the completed version of the Customer Application referred to during today's class.

And this is where the slides are found and here is today's homework.

Nokia getting into analyzing Java ME apps

tis, 2010-08-24 01:58
Nokia just acquired Motally Analytics, which is a company in San Francisco that provides analytic information for Java ME applications. This just reiterates Nokia's commitment to Java ME mobile apps, especially in being able to analyze this and analyze that.

See:

Nokia Analyzes Java ME

Here's a quote: The tool set also comes with features for "standard" tracking, as well as tracking debug statements, error statements, generic actions, startup, shutdown and event types. Nokia said it plans to adapt the software to provide usage statistics from mobile Web sites and applications running on Java- based mobile devices... Cool. My Java ME app can start analysis. I think it might do it some good...

Yet another offline Java bytecode verifier

mån, 2010-08-23 21:33

When directly manipulating or generating Java bytecode, it's not too hard to end up with bytecode that will not verify. The JVM will catch this code at runtime. However, the verifier in a JVM exists primarily to ensure secure execution of Java code, not to assist with bytecode-level programming. As a result, the verification error messages printed by a JVM are typically not so useful when trying to figure out why exactly your manipulated/generated bytecode does not verify. This is a well known problem and there already exists a number of standalone verifiers that provide very informative error messages. The ASM Java bytecode manipulation and analysis framework includes a builtin class verifier as does the BCEL library.

In the Maxine VM project, we use bytecode generation/manipulation as an alternative to writing assembler code. For example, we implement JNI stubs via generated bytecode (using a couple of bytecode extensions specific to Maxine). As such, we run into the usual issues of ensuring that the bytecode we generated was verifiable. Initially, we considered using one of the aforementioned libraries to address this. However, given that our goal is to develop a specification compliant JVM implementation we had to implement a verifier anyway. So, with the help of a sharp intern (thanks Dave!) we wrote one. Actually, we wrote two - one that performs type inferencing for class files with a version number less than 50 and one that does type checking for more recent class files (those compliant with the class file changes specified in JSR202). Now we have a verifier that not only passes the relevant JCK tests but is also a development aid whenever we do bytecode-level programming in the VM.

Useful functionality in the Maxine code base that can be made to work standalone is exposed by a the max script. So, for anyone wanting yet another offline verifier, this script includes a verify sub-command. Here's how to get the usage message for this command:

~/maxine$ bin/max help verify max verify [options] patterns... verifies a set methods using the Maxine bytecode verifier Run the Maxine verifier over a set of specified methods available on the class path. To extend the class path, use one of the global "-cp/p:" or "-cp/a:" options. See Patterns below for a description of the format expected for "patterns..." Use "max verify -help" to see what other options this command accepts. --- Patterns --- A pattern is a class name pattern followed by an optional method name...

Here's the output of using it to verify a negative-test (i.e. expected to cause a failure) from the JCK:

~/maxine$ bin/max -cp/a:/Volumes/JCK-runtime-6/classes verify javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn:m Initializing verifier system... Initialized verifier system Finding specified methods... Found 1 methods Exception in thread "main" VerifyError: Missing stackmap frame for bytecode position 26 (branch target) while verifying javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn.m() at bytecode position 1 at com.sun.max.vm.classfile.ErrorContext.verifyError(ErrorContext.java:179) at com.sun.max.vm.verifier.MethodVerifier.verifyError(MethodVerifier.java:124) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier.frameAt(TypeCheckingMethodVerifier.java:209) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier.performBranch(TypeCheckingMethodVerifier.java:317) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier$Interpreter.lookupswitch(TypeCheckingMethodVerifier.java:1579) at com.sun.max.vm.bytecode.BytecodeScanner.scanInstruction(BytecodeScanner.java:991) at com.sun.max.vm.bytecode.BytecodeScanner.scan(BytecodeScanner.java:1197) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier.verifyBytecodes(TypeCheckingMethodVerifier.java:145) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier.verify(TypeCheckingMethodVerifier.java:112) at com.sun.max.vm.verifier.TypeCheckingVerifier.verify(TypeCheckingVerifier.java:71) at test.com.sun.max.vm.verifier.CommandLineVerifier.main(CommandLineVerifier.java:106)

To see the abstract interpreter in action, use the -verbose option:

~/maxine$ bin/max -cp/a:/Volumes/JCK-runtime-6/classes verify -verbose=3 javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn:m Initializing verifier system... Initialized verifier system Finding specified methods... Found 2 methods Verifying javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn.m() Input bytecode: Stack=1, Locals=1 0: iconst_1 | 4 1: lookupswitch default:20 1:26 | 171 0 0 0 0 0 19 0 0 0 1 0 0 0 1 0 0 0 25 20: return | 177 StackMapTable: number of entries = 1 20: frame_type = 255 /* full_frame */ offset_delta = 20 number_of_locals = 1 locals = [ javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn ] number_of_stack_items = 0 stack = [ ] StackMapTable frames: 0: local[0] = javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn 20: local[0] = javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn Interpreting bytecode: local[0] = javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn 0: iconst_1 stack[0] = int local[0] = javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn 1: lookupswitch Exception in thread "main" VerifyError: Missing stackmap frame for bytecode position 26 (branch target) while verifying javasoft.sqe.tests.vm.classfmt.ins.instr_006.instr_00601m1t.instr_00601m1tn.m() at bytecode position 1 at com.sun.max.vm.classfile.ErrorContext.verifyError(ErrorContext.java:179) at com.sun.max.vm.verifier.MethodVerifier.verifyError(MethodVerifier.java:122) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier.frameAt(TypeCheckingMethodVerifier.java:209) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier.performBranch(TypeCheckingMethodVerifier.java:317) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier$Interpreter.lookupswitch(TypeCheckingMethodVerifier.java:1579) at com.sun.max.vm.bytecode.BytecodeScanner.scanInstruction(BytecodeScanner.java:991) at com.sun.max.vm.bytecode.BytecodeScanner.scan(BytecodeScanner.java:1197) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier.verifyBytecodes(TypeCheckingMethodVerifier.java:145) at com.sun.max.vm.verifier.TypeCheckingMethodVerifier.verify(TypeCheckingMethodVerifier.java:112) at com.sun.max.vm.verifier.TypeCheckingVerifier.verify(TypeCheckingVerifier.java:71) at test.com.sun.max.vm.verifier.CommandLineVerifier.main(CommandLineVerifier.java:106)

The verify sub-command is available as of version 4278 in the main Maxine repository.

OGB dissolution

mån, 2010-08-23 19:51
The OGB has pulled the trigger today. The members resigned today as reported by the last meeting minutes ever of the OGB . After the the developments of the last few weeks this was just a formal, but inevitable step. Will it change something? Don't think so ...

CVE-2010-1166 Denial of service vulnerability in Xorg server

mån, 2010-08-23 17:36
CVE DescriptionCVSSv2 Base ScoreComponentProduct and Resolution CVE-2010-1166 Denial of service vulnerability in Xorg server Render extension 7.1 Xorg server Solaris 10 SPARC: 125719-31, X86: 125720-41 Sun Ray 4.2 SPARC: 140993-03, X86: 140994-03, Linux: 140995-03 Sun Ray 4.1 SPARC: 139548-06, X86: 139549-06, Linux: 139550-06

This notification describes vulnerabilities fixed in third-party components that are included in Sun's product distribution.
Information about vulnerabilities affecting Oracle Sun products can be found on Oracle Critical Patch Updates and Security Alerts page.

Full House at the NetBeans Platform Training in Johannesburg

mån, 2010-08-23 15:31
Well, the NetBeans Platform Certified Training has now started in Johannesburg, organized by Jumping Bean.

The room is as full as it could be. 16 paid students, all from various organizations. About half of them are from defense contractor Saab, who create applications for the South African National Defense Force. Part of what they're going to be doing is plugging into KITT, about which there will be a demonstration on Wednesday. Other students (well, actually, fulltime Java professionals) are working at, among other organizations, Fermel, creating mining-related applications, jemstep, it platforms, and Core Freight Systems.

The range of experience is quite large, from newbies to Java to some who already have various applications on the NetBeans Platform, hoping to provide screenshots of those soon.

The topics discussed during the first day ranged from getting started to modules, Lookup, and System FileSystem (central registry). Tomorrow we'll cover window systems, nodes & explorer views, and the Visual Library.

Unfortunately, in all the excitement, I forgot to take a photo of the group, hope to do so tomorrow. The homework for the evening was to complete the text filter sample that the group had started working on during the course:

http://platform.netbeans.org/tutorials/nbm-quick-start.html

The same course will be delivered next week in Stellenbosch, at the offices of ISS International, an organization creating applications for seismological analysis. There are still a few places left over, so write to mark at jumpingbean dot co dot za to join up.

Working with RDP settings in Oracle VDI

mån, 2010-08-23 15:24

The display protocol between Sun Ray DTUs (or the software application Oracle Virtual Desktop Client) and the Oracle VDI servers is ALP, the Appliance Link Protocol. ALP is a latency friendly protocol and very efficient in Wide Area Networks. Between the Oracle VDI servers and the Virtual Desktops, hosted on the virtualization infrastructure, the RDP protocol is used and implemented through the Sun Ray Connector for Windows.

The Oracle VDI broker uses standard RDP settings that you may change as an Oracle VDI administrator. This is done per pool configuration and available through the Oracle VDI GUI or via CLI-commands. In the below picture you see how to navigate in the Oracle VDI GUI to the pool settings: select Pools in the left column, select the Pool you want to customize (in my case Windows XP Pool) and select the tab Settings.

If you scroll down on the Pool Settings page you see the section for Sun Ray specific pool settings and the option to customize the settings for RDP. Pay attention to the order of selecting the options:

  1. Select the hyperlink Edit Sun Ray RDP Settings and enable the desired settings in the page that displays, save the changes and go back to the Pool Settings page.
  2. Select the checkbox Use Customized Settings,
  3. Save the changes
I have made multiple times the error to go directly to the Edit Sun Ray RDP Settings after I selected the checkbox. If you don't save the change, and you come back from Edit Sun Ray RDP Settings page, the checkbox is not activated anymore.

In the case you have changed the Sun Ray RDP settings and the result is still different then what you were expecting, you can go to the Oracle VDI server command-line (via SSH or Putty) to do some trouble-shooting. As you may know already, the RDP client for a Sun Ray session is called uttsc in Solaris. The desired RDP settings that you configured in the GUI are passed as arguments through this uttsc process on the server.

A very nice tool in the trouble-shooting process is the Solaris pargs CLI-command, which gives you information about the arguments that are passed to a Solaris process (identified by a Process ID).

In my example (see below) I want to investigate the RDP settings for a Sun Ray user with userid jaapr. I have to find out to which server Jaap's Sun Ray session is connected (press the three audio-keys on a Sun keyboard), I connect to this server with SSH/Putty and with the process ID of the uttsc process (better to use uttsc-bin for this) I investigate the RDP settings:

root@vdiserver:~# ps -ef|grep jaapr|grep uttsc-bin utku5 28223 28204 0 17:42:11 ? 0:00 /opt/SUNWuttsc/lib/uttsc-bin -m -u jaapr ... root@vdiserver:~# pargs 28223 28223: /opt/SUNWuttsc/lib/uttsc-bin -m -u jaapr -S 5 -d SUNVDI -i -r usb:on -E wallpap argv[0]: /opt/SUNWuttsc/lib/uttsc-bin argv[1]: -m argv[2]: -u argv[3]: jaapr argv[4]: -S argv[5]: 5 argv[6]: -d argv[7]: SUNVDI argv[8]: -i argv[9]: -r argv[10]: usb argv[11]: -E argv[12]: wallpaper argv[13]: -E argv[14]: theming argv[15]: 192.168.4.157 root@vdiserver:~#

And here you have the complete listing of the RDP settings that are used for a specific Desktop session in a selected VDI pool.

Oracle Solution Center in Beijing

mån, 2010-08-23 15:00

8월 2일~6일 일정으로 베이징에 있는 오라클 솔루션 센터(구. 썬 솔루션 센터)에 다녀왔습니다. 솔루션 센터는 썬의 시스템 및 소프트웨어를 갖추고 각종 데모, 벤치마크 테스트 및 PoC(Proof of Concept)를 진행하는 곳으로 새로운 오라클 솔루션 센터는 아시아에서는 베이징 및 시드니에 전산실을 갖추고 있습니다.

한국 썬과 같이 각 지역에서도 데모를 위한 시스템을 확보하고 있기 때문에 이 곳에서는 주로 각국 별로 공유하는 대형 시스템-스토리지를 이용한 데모, BMT를 위하여 사용되며 인터넷을 통하여 접속할 수 있는 환경이 구성되어 있습니다.

베이징에서도 가장 중심지에 해당하는 Central Place에 위치하여 고객 방문에 상당히 좋은 환경을 갖추고 있고 하이엔드 시스템들 특히 최근 썬과 오라클의 하모니로 새로 출시된 Exadata 시스템이 Full Rack 구성된 것을 볼 수 있어 인상적이었습니다. 사진에는 전면만 있지만 매우 복잡하지 않을까 생각했던 후면이 Infiniband 케이블로 전면 만큼이나 심플한 모습이어서 어플라이언스 제품으로써 소프트웨어-하드웨어 아키텍쳐 뿐만 아니라 물리적인 구성마저도 이토록 최적화되어 있는 모습에 깜짝 놀랐습니다.


- 베이징 오라클 솔루션 센터의 안내데스크 및 정문 -


- 붉은 색의 중국 등을 상징하는 장식물 및 전산실 입구 -


- 하이엔드 시스템이 즐비한 전산실과 Exadata 머신 -


- 듀얼헤드 구성의 썬레이와 사무실에서 내다 본 풍경 -


Oracle Solutions Day over Virtualisatie in Amersfoort- 31 augustus 2010

mån, 2010-08-23 14:55

U hebt onze strategie gehoord en begrijpt onze visie. Kom dan nu kijken hoe een en ander in de praktijk werkt!

De efficiency van het datacenter is voor iedereen een uiterst belangrijk onderwerp, waarmee allerlei technologieën gemoeid zijn.

Kom naar onze Solution Days, waar we de voordelen van Oracle’s belangrijkste oplossingen binnen ons gezamenlijke aanbod live demonstreren. In één middag komen telkens drie belangrijke onderwerpen aan bod. U krijgt de voordelen van onze oplossingen in de praktijk te zien:

  • 31 augustus: Consolidatie en virtualisatie.
    Live demonstraties van virtualisatietechnieken als Oracle VM, Oracle Solaris Containers en Oracle VDI.
  • 18 november: Efficiënte werking van het datacenter. Live demonstraties van beheersoftware als Oracle Enterprise Manager, OpsCenter en GUI voor Unified Storage.

Deze twee DCE Solution Days zijn technisch georiënteerd en volgen een praktische aanpak. We hopen u dat u erbij kunt zijn!

Schrijf u nu in

Schrijf u nu in voor deze praktijkbijeenkomsten

Sun Microsystems Nederland
Saturnus 1
3824 ME Amersfoort
Netherlands

- 31 augustus
- 18 november

Schrijf u nu online in voor deze praktijkbijeenkomsten of stuur ons een e mail via solution_days_nl@sun.com. Agenda 31 augustus: Consolidatie en virtualisatie 18 november: Efficiënte werking van het datacenter 12.00 – 13.00 Registratie en koffie 13.00 – 13.15 Welkomstwoord en agenda 13.15 – 14.00 Thematoespraak door Oracle:
Oracle’s end-to-end virtualisatieoplossingen Thematoespraak door Oracle:
Oracle’s geïntegreerde beheeroplossingen 14.00 – 14.45 Live demonstratie van Oracle VM Live demonstratie van Oracle Enterprise Manager OpsCenter 14.45 – 15.00 Koffiepauze 15.00 – 15.45 Live demonstratie van Oracle Solaris Containers Live demonstratie van beheer-GUI voor Unified Storage 15.45 – 16.30 Live demonstratie van Oracle Virtual Desktop Infrastructure (VDI) Resultaten onderzocht aan de hand van voorbeelden van echte klanten 16.30 – 17.00 Nuttige tools en volgende stappen 17.00 – 17.30 Slotopmerkingen en drankjes Copyright © 2010, Oracle and/or its affiliates.
All rights reserved. Contacteer ons | Juridische Opmerking | Privacy


Repriced: SPC-1 Sun Storage 6180 Array (8Gb) 1.9x Better Than IBM DS5020 in Price-Performance

mån, 2010-08-23 14:32
Results are presented on Oracle's Sun Storage 6180 array with 8Gb connectivity for the SPC-1 benchmark.
  • The Sun Storage 6180 array is more than 1.9 times better in price-performance compared to the IBM DS5020 system as measured by the SPC-1 benchmark.

  • The Sun Storage 6180 array delivers 50% more SPC-1 IOPS than the previous generation Sun Storage 6140 array and IBM DS4700 on the SPC-1 benchmark.

  • The Sun Storage 6180 array is more than 3.1 times better in price-performance compared to the NetApp FAS3040 system as measured by the SPC-1 benchmark.

  • The Sun Storage 6180 array betters the Hitachi 2100 system by 34% in price-performance on the SPC-1 benchmark.

  • The Sun Storage 6180 array has 16% better IOPS/disk drive performance than the Hitachi 2100 on the SPC-1 benchmark.

Performance Landscape

Select results for the SPC-1 benchmark comparing competitive systems (ordered by performance), data as of August 6th, 2010 from the Storage Performance Council website.

Sponsor System SPC-1 IOPS $/SPC-1
IOPS ASU
Capacity
(GB) TSC Price Data
Protection
Level Results
Identifier Hitachi HDS 2100 31,498.58 $5.85 3,967.500 $187,321 Mirroring A00076 NetApp FAS3040 30,992.39 $13.58 12,586.586 $420,800 RAID6 A00062 Oracle SS6180 (8Gb) 26,090.03 $4.37 5,145.060 $114,042 Mirroring A00084 IBM DS5020 (8Gb) 26,090.03 $8.46 5,145.060 $220,778 Mirroring A00081 Fujitsu DX80 19,492.86 $3.45 5,355.400 $67,296 Mirroring A00082 Oracle STK6140 (4Gb) 17,395.53 $4.93 1,963.269 $85,823 Mirroring A00048 IBM DS4700 (4Gb) 17,195.84 $11.67 1,963.270 $200,666 Mirroring A00046

SPC-1 IOPS = the Performance Metric
$/SPC-1 IOPS = the Price-Performance Metric
ASU Capacity = the Capacity Metric
Data Protection = Data Protection Metric
TSC Price = Total Cost of Ownership Metric
Results Identifier = A unique identification of the result Metric

Complete SPC-1 benchmark results may be found at http://www.storageperformance.org.

Results and Configuration Summary

Storage Configuration:

80 x 146.8GB 15K RPM drives
4 x Qlogic QLE 2560 HBA

Server Configuration:

IBM system x3850 M2

Software Configuration:

MS Windows 2003 Server SP2
SPC-1 benchmark kit Benchmark Description SPC Benchmark-1 (SPC-1): is the first industry standard storage benchmark and is the most comprehensive performance analysis environment ever constructed for storage subsystems. The I/O workload in SPC-1 is characterized by predominately random I/O operations as typified by multi-user OLTP, database, and email servers environments. SPC-1 uses a highly efficient multi-threaded workload generator to thoroughly analyze direct attach or network storage subsystems. The SPC-1 benchmark enables companies to rapidly produce valid performance and price-performance results using a variety of host platforms and storage network topologies.

SPC1 is built to:

  • Provide a level playing field for test sponsors.
  • Produce results that are powerful and yet simple to use.
  • Provide value for engineers as well as IT consumers and solution integrators.
  • Is easy to run, easy to audit/verify, and easy to use to report official results.
Key Points and Best Practices See Also Disclosure Statement

SPC-1, SPC-1 IOPS, $/SPC-1 IOPS reg tm of Storage Performance Council (SPC). More info www.storageperformance.org, results as of 8/6/2010. Sun Storage 6180 array 26,090.03 SPC-1 IOPS, ASU Capacity 5,145.060GB, $/SPC-1 IOPS $4.37, Data Protection Mirroring, Cost $114,042, Ident. A00084.