Hizmet yenileme 5

Bu yenileme önemli değişiklikler içeriyor.

Hizmet yenileme 5 düzeltme paketi 5değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 10değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 15değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 16değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 17değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 20değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 25değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 26değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 27değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 30değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 31değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 35değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 36değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 37değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 40değerine atlayın.

Hizmet yenileme 5 düzeltme paketi 41değerine atlayın.

Hizmet yenileme 5

Java™ sürüm çıkışı
java -version ve java -showversion komut satırı seçenekleri ve java.version sistem özelliğinden alınan çıkış, IBM SDK ' nin dayandığı Oracle oluşturma numarasını içerecek şekilde güncellenir. Örneğin, 1.8.0_141 dizesi, SDK ' nın Oracle SE 1.8 sınıf kitaplıklarına dayalı olduğunu, 141 (U141) güncellediğini belirtir.

Çıkışta ayrıca, Sürüm, Yayın, Değişiklik ve Düzeltme paketi numarası (V.R.M.F). Örneğin, Java(TM) SE Runtime Environment (build 8.0.5.0 ... , Sürüm 8 'i, Hizmet Yenileme 5 'i yansıtır.

JVM boşta durduğunda Java nesnesi öbeğini yönetme (yalnızcaLinux® )
JVM boşta durduğunda Java nesnesi öbeğini yönetmek için aşağıdaki ayarlama seçenekleri kullanılabilir:
  • -XX:IdleTuningMinIdleWaitTime seçeneği seçeneği, diğer ayarlama seçeneklerinin yürürlüğe girmesinden önce JVM ' nin ne kadar boşta durması gerektiğini denetler.
  • -XX: [ + |-]IdleTuningCompactOnBoşta Duran seçeneği seçeneği, çöp toplayıcısının Java nesnesi öbeğini toplayıp sıkıştırdığını, hangilerinin öbek kullanımını iyileştirdiğini denetler.
  • -XX: [ + |-]IdleTuningGcOnBoşta Duran seçeneği seçeneği, bellek kapladığı alanı azaltmak için boş bellek sayfalarının serbest bırakılıp bırakılmayacağını denetler.
  • The -XX:IdleTuningMinFreeHeapOnBoşta Duran Seçeneği option can be used with -XX:+IdleTuningGcOnIdle to set the minimum amount of free memory that should remain in the object heap.

    Bu seçenek, Generation Concurrent (gencon) anlamsız veri toplama ilkesi kullanımda olduğunda x86-32 ve x86-64 mimarilerinde yalnızca Linux için geçerlidir. Nesne öbeği büyük sayfaları kullanacak şekilde yapılandırıldıysa, bu seçenek geçerli değildir.

Kısaltma sürelerini kısaltmak için yeni anlamsız veri toplama kipi
Generation Concurrent (gencon) atık toplama ilkesiyle çalışan yeni bir kip vardır. Bu mod etkinleştirildiğinde, JVM yanıt süresi duyarlı, büyük öbek uygulamaları için GC duraklatma sürelerini azaltmayı dener ve bu da üretilen iş dengesini artırır. Kip, en az z/OS® V2R3 (ya da APAR OA51643ile z/OS V2R2 ) ve z14 donanımı gerektiren ve yalnızca 64 bit JVM için destekleniyorsa, -Xgc:concurrentScavenge seçeneği tarafından denetlenir. İşletim sistemi ve donanım gereksinimi karşılanmazsa, bu seçenek yoksayılır.
JIT derleyicisine ilişkin 2 GB ' lik çubuktan (yalnızcaz/OS ) daha yüksek bellek ayırmaları
z/OS V2R3 sistemlerinde, 64 bit programlar için ihtisas kipi (RMODE64) varsayılan olarak etkindir. Bu özellik, JIT 'in 2 GB' lik bellek çubuğundan yürütülebilir kod önbellekleri ayırmasına olanak sağlar. Bu davranış, komut satırında -Xjit:disableRMODE64 seçeneği belirtilmediyse varsayılan değerdir. Daha fazla bilgi için bkz. disableRMODE64 (yalnızcaz/OS ).
Paylaşılan sınıf önbelleğinin ayarlanması
Artık, programlı olarak sorgulanabilen ve bir MXBean kullanılarak sorgulanabilen ya da komut satırı seçenekleri kullanılarak değiştirilmiş olabilen paylaşılan sınıf önbelleğinin içeriğinde yumuşak bir sınır yaratabilirsiniz. Önbelleğin boyutunu izleme ve ayarlama yeteneği, birden çok benzer sunucu çalıştırırken kapladığı alanı ve başlangıç süresini azaltmanıza yardımcı olabilir.

Önceki yayınlarda olduğu gibi -Xscmx seçeneğini belirtirseniz, davranışın bir değişikliği yoktur; bu seçenek, yeni bir paylaşılan sınıf önbelleğinin boyutunu belirtir. Ancak, yeni -XX:SharedCacheHardLimit seçeneğini de belirtirseniz, -Xscmx seçeneği yeni paylaşılan sınıf önbelleğinin yumuşak büyüklük üst sınırını belirtir ve -XX:SharedCacheHardLimit seçeneği gerçek büyüklük üst sınırını belirtir. Yumuşak üst sınıra ulaşıldığında (önbellek yumuşak dolu), yumuşak üst sınır değerini artırmadığınız sürece, veriler önbelleklere eklenemez. Daha fazla bilgi için bkz. -Xscmx seçeneği ve -XX:SharedCacheHardLimit seçeneği.

Geliştirilmiş MXBean uyumluluğu
java.lang.mangement API ' lerinin izleme ve yönetim arabirimi uzantıları, aşağıdaki com.sun.management sınıflarıyla iyileştirilmiş uyumluluk için güncellenir.
  • GarbageCollectorMXBean
  • GarbageCollectionNotificationInfo
  • GcInfo
  • OperatingSystemMXBean
  • UnixOperatingSystemMXBean
Bu uyumluluk, sınıf yayınını uyumluluğu ve bu com.sun.management sınıfları tarafından sağlanan tam API kümesinin somutlamasını içerir. Ek bilgi için Language Management API Referencebelgesine bakın.
Önceki arabirim uzantılarından çıkışa güveniyorsanız, uygulamanın işleyişini geri çevirmek için aşağıdaki yeni seçenekler kullanılabilir:
  • -Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns
  • -XX:[+|-]HeapManagementMXBeanCompatibility
Bu seçenekler hakkında daha fazla bilgi için bkz. OperatingSystemMXBean.getProcessCpuTime() yönteminin dönüş değerinde değişiklik ve Bellek havuzlarının ve atık toplama etkinliğinin iyileştirilmiş izlenmesi.
OperatingSystemMXBean.getProcessCpuTime() yönteminin dönüş değerinde değişiklik
The OperatingSystemMXBean.getProcessCpuTime() method is changed to return values in nanoseconds instead of hundreds of nanoseconds, for compatibility with the com.sun.management.OperatingSystemMXBean and UnixOperatingSystemMXBean interfaces. -Dcom.ibm.lang.management.OperatingSystemMXBean.isCpuTime100ns seçeneği sistem özelliğini kullanarak önceki davranışa geri dönebilirsiniz.
Bellek havuzlarının ve atık toplama etkinliğinin iyileştirilmiş izlenmesi
Uygulamanızın davranışını anlamanıza yardımcı olmak için, IBM® Garbage Collector ve Bellek Havuzu MXBean'lerine ilişkin geliştirmeler yapılmıştır. Önceki yayınlarda, bellek havuzu bilgileri toplanır ve tüm Java yığını için raporlanır. Bu yayında, bellek havuzları ve atık toplama ilkesi için atık toplayıcı etkinliği hakkında daha ayrıntılı bilgi edinilebilir.

If your monitoring application is written to expect only one heap memory pool, or relies on the memory pool name Java heap, you can revert to the earlier implementation by using the -XX:+HeapManagementMXBeanCompatibility option. Bu seçenekle ve sağlanan yeni MemoryPool ve GarbageCollector adlarıyla ilgili daha fazla bilgi için bkz. -XX: [ + |-]HeapManagementMXBeanCompatibility seçeneği.

Varsayılan değer olarak-XX:[+|-]InterleaveMemory devre dışı bırakıldı (AIX®, Linuxve Windows)
Bellek arası ayrılma varsayılan olarak devre dışı bırakılıyor. Daha fazla bilgi için bkz. -XX: [ + |-]InterleaveMemory seçeneği (AIX, Linuxve Windows).
Geciken bağlantı aracıları sınıfları yeniden tanımlayabilir ya da yeniden dönüştürebilir
Geciken ekleme aracıları, varsayılan olarak sınıfları yeniden tanımlayabilir ya da yeniden dönüştürebilir. Bu işlevi etkinleştirmek için, IBM SDK, Java Technology Edition, Sürüm 8: Supplementary information(IBM SDK, Java Technology Edition, Sürüm 8: Ek bilgi) başlıklı konuda açıklanan -XX:+EnableHCR seçeneğini kullanmanız gerekmez. Java iliştirme API 'si hakkında daha fazla bilgi için OpenJ9 kullanıcı belgelerindeki Java Attach API konusuna bakın.
VM kancaları için geliştirilmiş tanılama bilgileri
Sınıf boşaltma kancası gibi bir VM kancasına ilişkin geri çağrılar bir zaman eşiğini aştığında tetiklenen yeni izleme noktaları eklenir. Tetiklendiğinde, Java döküm çıktısında yeni bir bölüm üretilir. Tracepoins ve Java dökümü, geri çağrıları tanımlamak için yeterli bilgi sağlar.

Dosya hakkında daha fazla bilgi içinHOOKsection of a Java dump file, see Kanca (HOOK) in the OpenJ9 kullanıcı belgeleri. İzleme noktaları hakkında daha fazla bilgi için, J9 VM başvurusuiçindeki Java uygulamalarını izleme başlıklı konuya bakın.

Extra page of memory no longer required when using large page sizes (Linux on IBM Z and z/OS only)
Büyük sayfa büyüklüğünün birden çok olan bir nesne öbeği büyüklüğü belirtilirken, artık başka bir bellek sayfası için izin vermenize gerek yoktur. Önceki yayınlarda, örneğin sayfa büyüklüğü 2 GB ise, -Xmx2G ayarı aslında 4 GB bellek kullanıyordu. Daha fazla bellek kullanmaktan kaçınmak için, öbek büyüklüğünü, en az 16 bayt çıkarılarak, ayrılmaz bir sayfa sayısından daha küçük bir değer haline getirmeniz gerekir. For example, for a 2 GB page size, you had to specify a maximum heap size of -Xmx2147483632 (2147483648 minus 16 bytes) instead of -Xmx2048m (2 GB). For a 4 GB page size, you had to specify a heap size of -Xmx4294967280 (4,294,967,296 minus 16 bytes) instead of -Xmx4096m (4 GB), and so on. Bu yayından, öbek büyüklüğünü azaltmanıza gerek yoktur.
İlk Java öbeği büyüklüğü için varsayılan değer
-Xms seçeneği, Java yığınının başlangıç boyutunu ayarlar. Bu seçenek komut satırında ayarlanmazsa, çöp toplayıcı varsayılan olarak 8 MB ' lik bir başlangıç boyutunu ayarlar. SDK 'nın önceki yayınlarında, atık toplayıcı varsayılan değer 4 MB' dir. Bu ayara ilişkin ek bilgi için OpenJ9 kullanıcı belgeleriiçindeki -Xms seçeneği başlıklı konuya bakın.
-Xthr:<fastNotify|noFastNotify> Seçenek
You can now use -Xthr:fastNotify to increase the throughput of an application, specifically when regular usage of wait and notify causes a large number of threads to try to acquire a Java monitor. Ek bilgi için OpenJ9 kullanıcı belgeleriiçindeki -Xthr seçeneği başlıklı konuya bakın.
Bazı -Xzero alt seçenekleri artık desteklenmiyor
j9zip, noj9zip, sharezipve nosharezip alt seçenekleri artık desteklenmiyor. Bu seçenekleri belirtirseniz, bunlar ayrıştırılır, ancak hiçbir şey yapmazlar. Bu seçenekler hakkında daha fazla bilgi için, OpenJ9 kullanıcı belgeleriiçindeki -Xms seçeneği başlıklı konuya bakın.
API kural dışı durumlarını şimdi ekle com.sunile başlayın
Attach API exceptions are now prefixed with com.sun.tools.attach instead of com.ibm.tools.attach.
Varsayılan olarak Runtime Instrumentation olanağı geçersiz kıldı (yalnızcaAIX, Linuxve z/OS )
Daha önceki güncellemelerde, RI olanağı, varsayılan değer olarak, bu olanağı destekleyen tüm altyapılarda etkinleştirilmiştir. RI olanağı varsayılan olarak devre dışıdır. Ek bilgi için OpenJ9 kullanıcı belgeleriiçindeki -XX: [ + |-]RuntimeInstrumentation başlıklı konuya bakın.
Changes to Strings to support CompactStrings
In order to support compact Strings (-XX:+CompactStrings), java.lang.String no longer contains an offset field, which is used to indicate the start of the String in the underlying char[] data. Sıfırdan başka beginIndex değerleri için kodunuzda aşağıdaki yöntemler kullanılırken performans etkilenebilir:
  • String.substring(int beginIndex)
  • String.substring(int beginIndex, int endIndex)

Önceki yayınlarda, yeni bir String yaratılır, ancak temeldeki char[] , char[] verilerinin kopyalanması için özgün String ile paylaşılır. char[] verileri şimdi kopyalanmakta olduğu için performans önemli ölçüde düşerse, String verilerinin kopyalanmasını önlemek için kodu yeniden uygulamayı deneyin.

Not: Applications that are written to run on Java implementations that use the HotSpot VM are unaffected, because String data is copied, even when using a beginIndex of zero.
Paketlenmiş nesne değerlendirme teknolojisi kaldırıldı
Paketlenmiş nesne teknolojisi önizlemesi artık kullanılamıyor.

Hizmet yenileme 5 düzeltme paketi 5

Bu yayın düzeyi, en son IBM düzeltmelerini, Ekim 2017 Oracle Kritik Yama Güncellemesini (CPU) ve aşağıdaki güncellemeleri içerir:
Java sürüm bilgilerinde yapılan değişiklikler
java -version komutundan çıkış değiştirildi. Burada bir örnek vardır:
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 8.0.5.5 - pxa6480sr5fp5-20171109_02(SR5 FP5))
IBM J9 VM (build 2.9, JRE 1.8.0 Linux amd64-64 Compressed References 20171102_369060 (JIT enabled, AOT enabled)
OpenJ9 - 7ade437
OMR - 1b656cb
IBM - 59c3d96)
JCL - 20171109_01 based on Oracle jdk8u151-b12
OpenJ9 ile başlayan satır, önceki yenilemelerde J9VM ve JIT satırlarının yerini alır; bu bileşenler artık Eclipse OpenJ9 projesiFoundation altındaki Eclipse Foundation 'a katkıda bulunmaktadır.
AIX desteği
Bu yenilemeden ve gelecekteki tüm geçici düzeltmeler (ifixes) için, desteklenen en düşük AIX 6.1 düzeyi artık TL9' dur. Daha düşük bir bakım düzeyiniz varsa, belirli com.ibm.language.management API uzantılarının kullanımı ProcessorUsageRetrievalException ve GuestOSInfoRetrievalException kural dışı durumlarıyla sonuçlanabilir.
Java işlemi için açık dosya tanımlayıcısı sayısının yapılandırılması
Bir işlemdeki açık dosya tanımlayıcıları sayısı üst sınırı işletim sistemi tarafından denetlenir. UNIX sistemlerinde, sistem sabit sınırını ya da ulimitayarını ayarlayarak bu sayıyı yapılandırırdınız.
Başlatma işlemleri sırasında aşırı kaynak kullanımını önlemek için, IBM SDK, bir Java işlemine ilişkin dosya tanımlayıcı sayısı üst sınırını 64K' ye sınırlar. Aşağıdaki kurallar geçerlidir:
  • ulimit değeriniz 64K' dan büyükse, dosya tanımlayıcı sayısı varsayılan olarak 64Kdeğerini alır.
  • ulimit değeriniz 64K' dan küçükse, dosya tanımlayıcı sayısı ulimit değeriyle eşleşir.
Uygulamanızın daha fazla sayıda açık dosya tanımlayıcısı gerekiyorsa ya da başlangıç performansı ayarlanmış olan varsayılan sınırdan etkileniyorsa, aşağıdaki ortam değişkenini ayarlayarak değeri yapılandırabilirsiniz:
export IBM_JAVA_FDLIMIT=file_descriptor_count
where file_descriptor_count is a value that is less than your system ulimit.

Hizmet yenileme 5 düzeltme paketi 10

Bu yayın düzeyi, en son IBM düzeltmelerini ve Ocak 2018 Oracle Critical Patch Update (CPU) olanağını içerir.

Güvenlik denetimi
Güvenliği artırmak için Eclipse OpenJ9 VM için, SecurityManger etkinleştirildiğinde aşağıdaki API ' lerdeki güvenlik denetimleri varsayılan olarak etkinleştirilmiştir:
  • com.ibm.jvm.Dump.JavaDump()
  • com.ibm.jvm.Dump.HeapDump()
  • com.ibm.jvm.Dump.SnapDump()
  • com.ibm.jvm.Log.QueryOptions()
  • com.ibm.jvm.Log.SetOptions(String)
  • com.ibm.jvm.Trace.set(String)
  • com.ibm.jvm.Trace.snap()
  • com.ibm.jvm.Trace.suspend()
  • com.ibm.jvm.Trace.suspendThis()
  • com.ibm.jvm.Trace.resume()
  • com.ibm.jvm.Trace.resumeThis()
  • com.ibm.jvm.Trace.registerApplication(String, String[])
  • com.ibm.jvm.Trace.trace(<any parameters>)
Komut satırında aşağıdaki sistem özelliklerini ayarlayarak, bu API ' ler için güvenlik denetimini geçersiz kılabilirsiniz:
  • -Dcom.ibm.jvm.enableLegacyTraceSecurity=false
  • -Dcom.ibm.jvm.enableLegacyDumpSecurity=false
  • -Dcom.ibm.jvm.enableLegacyLogSecurity=false

Hizmet yenileme 5 düzeltme paketi 15

This release contains the following changes in addition to the latest IBM fixes and the April 2018 Oracle Critical Patch Update (CPU):
Güvenlik denetimi
Sınıf veri paylaşımı ile SecurityManager kullanılıyorsa ve çalışan uygulama com.ibm.oti.shared.SharedClassUtilities API 'lerini getSharedCacheInfo() ya da destroySharedCache()olarak çağırıyorsa, bu API' leri çağıran kodu uygun SharedClassesNamedPermission' e vermeniz gerekir. For example code, see Özel sınıf yükleyiciler için destek in the OpenJ9 user documentation.
Döküm işlemeyi denetlemeye ilişkin yeni MXBean
Döküm ve izleme tanılama verilerinin üretilmesi, başlangıçta komut satırı seçenekleri -Xdump tarafından denetlenebilir. Döküm yapılandırmasını değiştirmek istiyorsanız, uygulamayı yeniden başlatmanız gerekir. Yeniden başlatma işlemini önlemek için yapılandırmayı dinamik olarak değiştirmek üzere com.ibm.jvm.Dump uygulamaları işleme arabirimini (API) kullanabilirsiniz. Uzak bir sunucuda ya da kapsayıcıda çalışan bir uygulamayı uzaktan izlerken dökümü dinamik olarak yapılandırabilmeniz için, döküm API yöntemlerini çağıran yeni bir MXBean 'i artık kullanabilirsiniz.
Yapılandırma seçeneklerine ilişkin daha fazla bilgi için API belgeleribaşlıklı konuya bakın.
Donanım desteği
Bu yenilemeyeIBM POWER9™ desteği eklenmiştir; ancak, güvenlik düzeltmeleri de içinde olmak üzere önemli düzeltmeler bu tarihten itibaren yapılmıştır. IBM POWER9kullanıyorsanız, en az düzeltme paketi 30 'a yükseltmeniz gerekir.
İşletim sistemi desteği
Aşağıdaki işletim sistemleri desteklenmektedir:
  • Red Hat® Enterprise Linux (RHEL) 7.5
  • Ubuntu 18.04
Eşzamanlı Scavenge kipi IBM Züzerinde Linux için desteklenmektedir.
-Xgc:concurrentScavenge seçeneği, şu anda aşağıdaki düzeylerde ve yapılandırmalarda RHEL 7.5 ve Ubuntu 18.04 ile IBM z14 donanımlarında desteklenmektedir:
<
  • RHEL 7.5 (çekirdek düzeyi alt sınırı 4.14)
  • Ubuntu 18.04
Hipervizörler
  • KVM çözümleri, QDAÜ 2.10 ya da sonraki bir sürüm ve en az anasistem çekirdeği düzeyi 4.12ile
z/OSüzerinde ICONV ile Java dönüştürücüleri arasında geçiş yapmak için yeni ortam değişkeni
Varsayılan olarak, karakterleri bir kod sayfası kümesinden başka bir kod sayfasına dönüştürmek için ICONV yardımcı programı kullanılır. Ancak, bazı durumlarda ICONV, belirli platformlarda tanınmayan bir karaktere dönüştürür. For example, ICONV converts the EBCDIC code x'25' (line feed) to Unicode '\u0085' (next line), which causes problems for XML parsers.
Java dönüştürücünün seçilebilmesi için aşağıdaki ortam değişkeni ayarlanabilir:
USE_JAVA_CONV=1
Varsayılan olarak ortam değişkeni, ICONV yardımcı programını kullanan USE_JAVA_CONV=0değerine ayarlıdır.

Hizmet yenileme 5 düzeltme paketi 16

Düzeltme paketi 16, Eclipse OpenJ9 sanal makinesinde aşağıdaki yeni özellikleri içerir:

Boşta duran ayarlama özelliği için genişletilmiş destek
Eclipse OpenJ9 VM ' deki boşta duran ayarlama özelliği, kullanılmayan belleği işletim sistemine geri vererek bellek kaplayan alanı küçük tutar. This feature is now available on Linux for IBM POWER® and IBM Z® in addition to x86 architectures when used with the generational concurrent (gencon) garbage collection policy. Bu özelliğe ilişkin ek bilgi için aşağıdaki komut satırı seçeneklerine ( OpenJ9 user documentationiçinde) bakın. Bu işlem, aşağıdaki davranışı denetler:
Bir kapsayıcıda çalışan uygulamalar için varsayılan maksimum Java yığın boyutu boyutuna çevir
Taşıyıcı teknolojisi kullanılırken, uygulamalar genellikle kendi üzerlerinde çalıştırılır ve bellek için rekabet etmelerine gerek yoktur. Bu güncelleştirmede, OpenJ9 VM bir taşıyıcının içinde ne zaman çalıştırıldığı saptanması için değişiklikler kullanıma sunulmuştur. Uygulamanız bir taşıyıcıda çalışıyorsa ve VM ' nin Java yığınına daha büyük bir bellek ayırmasını istiyorsanız, daha büyük bir kullanılabilir bellek yüzdesi elde etmek için komut satırında -XX:+UseContainerSupport seçeneğini ayarlayabilirsiniz. Ayrılan yüzde, kapsayıcı bellek sınırına bağlıdır. Daha fazla bilgi için, OpenJ9 kullanıcı belgeleriiçindeki -XX: [ + |-]UseContainerDestek başlıklı konuya bakın.

Hizmet yenileme 5 düzeltme paketi 17

Düzeltme paketi 17, Eclipse OpenJ9 sanal makinesinde aşağıdaki yeni özellikleri içerir:

Yeni atık toplama ilkesi
A new policy is introduced in the Eclipse OpenJ9 VM that expands the Java heap in the normal way, but does not reclaim memory through garbage collection operations. Bu kip, çalıştırma zamanı gereksinimlerini karşılamak için yeterli belleğin bulunduğu kısa ömürlü uygulamalar için kullanışlıdır. Daha fazla bilgi için, OpenJ9 kullanıcı belgeleriiçindeki -Xgcpolicy:nogc başlıklı konuya bakın.
Yüzde değeri olarak Java yığın boyutu üst sınırını belirleme
OpenJ9 VM artık yığın boyutunun fiziksel belleğin bir yüzdesi olarak ayarlanmasını destekler. Aşağıdaki Oracle HotSpot seçenekleri tanındı ve VM için ayarlanabiliyor:Uygulamanız bir taşıyıcıda çalışıyorsa ve -XX:+UseContainerSupportbelirttiyse, hem kapsayıcılar için varsayılan yığın boyutu, hem de bu yeni seçenekler için değerler kullanılabilir kapsayıcı belleğiyle temel alınır.
İç içe geçmiş jar dosyaları için paylaşılan sınıflar desteği
İç içe geçmiş jar dosyalarını desteklemek için com.ibm.oti.shared uygulama programlama arabiriminde değişiklikler yapılır.

Hizmet yenileme 5 düzeltme paketi 20

Bu yayın düzeyi, en son IBM düzeltmelerini ve Temmuz 2018 tarihli Oracle Kritik Patch Güncelleme 'yi (CPU) içerir.

Hizmet yenileme 5 düzeltme paketi 25

This release contains the latest IBM fixes and the October 2018 Oracle Critical Patch Update (CPU).

IBM SDK, Java Technology Edition Sürüm 8 ' i destekleyecek belgeler bu yenilemede değiştirilmektedir. Bu SDK kılavuzuna ve destekleyen J9 VM başvurusu' na ek olarak, IBM Documentation (Belgeler) artık Eclipse OpenJ9 VM kullanıcı belgeleriniiçerir. J9 VM başvuruunda önceden bulunan bazı malzemeler, yinelemeleri önlemek için kaldırılmıştır. Bu değişikliğin etkisini en aza indirmek için yeniden yönlendirme yer alıyor.

Eclipse OpenJ9 VM ' de yapılan yeni değişiklikler için OpenJ9 kullanıcı belgeleriiçindeki aşağıdaki yayın notlarına bakın:

Hizmet yenileme 5 düzeltme paketi 26

Fix pack 26 includes the following new features in the Eclipse OpenJ9 virtual machine, as described in the OpenJ9 user documentation:
Yeni sınıf veri paylaşımı alt seçenekleri

-Xshareclasses:bootClassesOnly seçeneği, önyükleme sınıfı yükleyiciler tarafından yüklenen sınıfların önbelleğe alınmasını devre dışı bırakır. Bu alt seçenek, paylaşılan sınıf önbelleği yaratılırken hata olsa bile VM ' nin başlatılmasına izin veren nonfatal alt seçeneğini de etkinleştirir.

-Xshareclasses:fatal seçeneği, paylaşılan sınıf önbelleği yaratılırken bir hata ortaya çıktı mı, VM ' nin başlatılmasını engeller. You might want to enable this suboption when using the -Xshareclasses:bootClassesOnly suboption, to troubleshoot problems when creating the cache.

Varsayılan olarak OpenJ9 VM ' de kapsayıcı ulaşılırlığı etkin

Taşıyıcı teknolojisi kullanılırken, uygulamalar genellikle kendi üzerlerinde çalıştırılır ve bellek için rekabet etmelerine gerek yoktur. VM, bir kapsayıcı ortamında çalıştığını saptarsa ve kapsayıcı için bir bellek sınırı ayarlandıysa, VM otomatik olarak varsayılan Java öbeği büyüklüğü üst sınırını ayarlar.

Daha önceki yayınlarda, bu davranış -XX:+UseContainerSupport seçeneği ayarlanarak etkinleştirilmiştir. Bu ayar artık varsayılan ayardır.

Duraklat-daha az atık toplama kipi şu anda Linux x86 platformlarında kullanılabilir

Duraklat-daha az atık toplama kipi, büyük öbek, yanıt süresi duyarlı uygulamalar hedeflenmektedir. Geçerli kılındığında, VM GC duraklatma sürelerini azaltmayı dener. Daha önceki yayınlarda, duraklatma daha az atık toplama kipi (-Xgc:concurrentScavenge), yalnızca IBM z14 donanımında kullanılabilir. Bu kip artık 64 bit x86 Linux platformlarında kullanılabilir.

Not: Generation Concurrent (gencon) atık toplama ilkesi kullanılmalıdır. (Bu, varsayılan ilkedir.)
Kimlik karma kodlarını artık negatif olmayan değerlere sınırlayabilirsiniz.
OpenJ9 , hem pozitif hem de negatif kimlik kodlarına izin verir; bu durum, programınız (yanlış) hashkodların yalnızca pozitif olabiliyorsa, sorun olabilen bir sorun olabilir. Ancak, kimlik karma kodlarını negatif olmayan değerlere sınırlandırmak için artık -XX:+PositiveIdentityHash seçeneğini kullanabilirsiniz. Tanıtıcı HASH kodlarının eksi olmayan değerlere sınırlanması, hash-yoğun işlemlerinin başarımı üzerinde etki yaratabileceğinden, bu seçenek varsayılan olarak etkinleştirilmez.
OpenJDK HotSpot seçenekleri için destek
Uyumluluk için şu OpenJDK Hotspot seçenekleri artık OpenJ9:tarafından desteklenmektedir:
  • -XX:MaxHeapSize, which is equivalent to the -Xmx option.
  • -XX:InitialHeapSize, which is equivalent to the -Xms option.
IBM_JAVA_OPTIONS kullanımdan kaldırıldı
IBM_JAVA_OPTIONS ortam değişkeni kullanımdan kaldırılmıştır. Onun yerine, yeni OPENJ9_JAVA_OPTIONS ortam değişkenini kullanın.

Hizmet yenileme 5 düzeltme paketi 27

Fix pack 27 includes the following new features in the Eclipse OpenJ9 virtual machine, as described in the OpenJ9 user documentation:
JIT kodu önbelleğinin boyutunu yönetmek için geliştirilmiş esneklik
JIT kod önbelleği derlenmiş Java yöntemlerinin yerel kodunu saklar. Varsayılan olarak, kod önbelleğinin büyüklüğü 64 bit VM için 256 MB ve 31 /32 bit VM için 64 MB 'dir. Daha önceki yayınlarda, -Xcodecachetotal komut satırı seçeneği kullanılarak kod önbelleğinin boyutu varsayılan değerden artırılabilir. Bu yayın düzeyinde, boyut alt sınırı 2 MB olan bu seçenek kullanılarak da azaltılabilir. JIT kod önbelleğinin boyutu, derlenen yöntemlere ilişkin meta verileri tutan JIT veri önbelleğinin boyutunu da etkiler. Kod önbelleğinin boyutunu yönetmek için -Xcodecachetotal seçeneğini kullanırsanız, veri önbelleğinin boyutu aynı oranla ayarlanır.

Hizmet yenileme 5 düzeltme paketi 30

Düzeltme paketi 30, OpenJ9 kullanıcı belgelerinde açıklandığı şekilde, Eclipse OpenJ9 sanal makinesinde aşağıdaki yeni özellikleri içerir:
Duraklatma için geliştirilmiş destek-daha az anlamsız veri toplama

Eşzamanlı Scavenge kipi (-Xgc:concurrentScavenge) artık 64 bit Windows işletim sistemlerinde desteklenmektedir.

Sanal makine bir docker kapsayıcısında çalıştığında, varsayılan olarak boşta durma ayarı etkinleştirilir
Daha önceki bir yayın düzeyinde, OpenJ9 VM boştayken Java yığınının kapladığı alanı yönetmek için bir dizi boşta durma seçeneği kümesi sunulmuştur. Aşağıdaki iki seçenek, OpenJ9 VM bir taşıyıcıda çalıştığını ve VM ' nin boş bir duruma girdiğini algıladığında varsayılan olarak etkindir:
  • -XX:[+|-]IdleTuningGcOnIdle, which runs a garbage collection cycle and releases free memory pages back to the operating system.
  • -XX:[+|-]IdleTuningCompactOnIdle; bu, parçalanmayı azaltmak için nesne yığınını oluşturur.
Varsayılan değer olarak, sanal makine boşta duran bir durumu saptamak için her 180 saniyede bir denetlenir. Denetimler arasındaki bekleme süresini denetlemek için, -XX: [ + |-]IdleTuningMinIdleWaitTime seçeneğini kullanın (OpenJ9 kullanıcı belgeleri). Boşta duran algılamayı kapatmak için, değeri 0 olarak ayarlayın.
Varsayılan paylaşılan sınıf önbelleği dizin izinlerinde yapılan değişiklikler (Windows değil)
Paylaşılan sınıf önbelleği dizinine ilişkin izinleri belirtmek için cachDirPerm alt seçeneğini kullanmayarsanız ve önbellek dizini /tmp/javasharedresources varsayılan değeri değilse, aşağıdaki değişiklikler geçerli olur:
  • Yeni bir önbellek dizini yaratırken, varsayılan izinler artık daha katı olur.
  • Önbellek dizini önceden varsa, izinler değişmemiştir (önceden, bu dizin kullanılarak bir önbellek açıldıysa, izinler 0777 olarak ayarlanır).

Daha fazla bilgi için OpenJ9 kullanıcı belgeleriiçindeki -Xshareclasses başlıklı konuya bakın.

Hizmet yenileme 5 düzeltme paketi 31

Düzeltme paketi 31, OpenJ9 kullanıcı belgelerinde açıklandığı şekilde, Eclipse OpenJ9 sanal makinesinde aşağıdaki yeni özellikleri içerir:
Denetim gruplarını uygulayan Linux sistemleri için daha iyi tanılama bilgileri
If you use control groups (cgrups) to manage resources on Linux systems, information about CPU and memory limits is now recorded in a Java dump file. Bu bilgiler özellikle Docker kapsayıcılarında çalıştırılan uygulamalar için önemlidir; çünkü kaynak sınırları bir taşıyıcı içinde ayarlandığında, Docker Engine , ayarları uygulamak için cgrouve ' lara dayanır. Bir uygulamanın kullanılabilir bellek miktarı üzerinde bir kap sınırı ayarlandığından ve bu ayırma yeterli olmadığından Java OutOfMemoryError hatası alıyorsanız, bu sorunu Java döküm dosyasından tanılayabilirsiniz. Cgroup bilgilerini ENVINFO bölümünde bulabilirsiniz.
Bir Java dökümü STDOUT ya da STDERR ' ye yazılıyor
Şimdi, -Xdump komut satırı seçeneğini kullanarak STDOUT ya da STDERR ' ye Java döküm dosyası yazabilirsiniz.
Duraklatma için geliştirilmiş destek-daha az anlamsız veri toplama
Koşutzamanlı scavenge kipi aşağıdaki altyapılarda desteklenmektedir:
  • IBM üzerindekiLinux POWER LE
  • AIX

Hizmet yenileme 5 düzeltme paketi 35

Düzeltme paketi 35, aşağıdaki güncellemeleri içerir:
Yeni Japon dönemi için destek
Yeni dönem adı Reiwa için destek eklenmiştir. Değişikliklerle ilgili daha fazla bilgi için bkz. Japanese era changes for the IBM SDK, Java Technology Edition.
Daha fazla işletim sistemi sürümü için destek
Red Hat Enterprise Linux (RHEL) sürüm 8 ve Windows Server 2019 için destek eklenmiştir. Desteklenen işletim sistemleri listeleri için Desteklenen ortamlarbaşlıklı konuya bakın.
64 bit z/OSüzerinde varsayılan yerel yığın boyutuna geçin.
64 bitlik z/OS üzerindeki işletim sistemi iş parçacıklarına ilişkin varsayılan yığın boyutu, 384 KB ' den en az 1 MB işletim sistemine çevrilir. Bu ayara ilişkin ek bilgi için -Xmsobaşlıklı konuya bakın.
Düzeltme paketi 35, OpenJ9 kullanıcı belgelerinde açıklandığı şekilde, Eclipse OpenJ9 sanal makinesindeki şu yeni özellikleri ve geliştirmeleri de içerir:
Tanınmayan -XX seçeneklerini yoksayma ya da raporlama için yeni seçenek: seçenekler
Varsayılan olarak, tanınmayan -XX: komut satırı seçenekleri yoksayılır ve bu da bir uygulamanın başlatılamamasını engeller. Artık tanınmayan -XX: seçeneklerinin raporlanabilmesi için -XX:-IgnoreUnrecognizedXXColonOptions ' u bu davranışı kapatmak için kullanabilirsiniz. Daha fazla bilgi için, OpenJ9 kullanıcı belgeleriiçindeki -XX: [ + |-]IgnoreUnrecognizedXXColonOptions başlıklı konuya bakın.
Bir Java dökümü STDOUT ya da STDERR ' ye yazılıyor

You can now write a Java dump file to STDOUT or STDERR by using the -Xdump command-line option. Ayrıntılar için OpenJ9 kullanıcı belgeleri içindeki STDOUT/STDERR' a Yazılıyor ' e bakın.

Denetim gruplarını uygulayan Linux sistemleri için daha iyi tanılama bilgileri

If you use control groups (cgroups) to manage resources on Linux systems, information about CPU and memory limits is now recorded in a Java dump file. Bu bilgiler özellikle Docker kapsayıcılarında çalıştırılan uygulamalar için önemlidir; çünkü kaynak sınırları bir taşıyıcı içinde ayarlandığında, Docker Engine , ayarları uygulamak için cgrouve ' lara dayanır. Bir uygulama için kullanılabilir bellek miktarı üzerinde bir kap sınırı belirlendiğinden ve bu ayırma yeterli olmadığı için Java OutOfMemoryError hatası alıyorsanız, bu sorunu Java döküm dosyasından tanılayabilirsiniz. Cgroup bilgilerini ENVINFO bölümünde bulabilirsiniz. Örnek çıktı için, OpenJ9 kullanıcı belgeleriiçindeki Java dökümü (ENVINFO) başlıklı konuya bakın.

Duraklatma için geliştirilmiş destek-daha az anlamsız veri toplama

Concurrent scavenge mode (-Xgc:concurrentScavenge) is now supported on AIX and Linux on POWER.

Anasistem adını ve IP adresini belirlemek için ağ sorgularının kullanılmasını önlemek için yeni OpenJ9 seçeneği

Varsayılan değer olarak, sorun giderme amacıyla anasistem adını ve IP adresini belirlemek için bir ağ sorgusu kullanılır. Bir ad sunucusu ile iletişim kurulamazsa, programınızın zamanaşımına neden olmasını önlemek için, artık sorgunun gerçekleştirilmesini önleyebilirsiniz. Daha fazla bilgi için, OpenJ9 kullanıcı belgeleriiçindeki -XX: [ + |-]ReadIPInfoForRAS başlıklı konuya bakın.

JVMTI izlenen alanların performansını artırmak için yeni deneysel seçenek
-XX: [ + |-]JITInlineWatches seçeneği (OpenJ9 kullanıcı belgeleri) bu yayın düzeyinde kullanıma sunulmuştur. Bu seçenek etkinleştirildiğinde, JVMTI izlenen alanların performansını artırmak amacıyla kullanılan JIT ' lerin deneysel işlemlerini temel alan işlemler üzerinde döner. Bu seçenek şu anda yalnızca x86 platformlarında (Windows, macOSve Linux) desteklenmektedir.
64 bit z/OSüzerinde varsayılan yerel yığın boyutuna geçin.
64 bit z/OS üzerinde işletim sistemi iş parçacıklarına ilişkin varsayılan yığın boyutu 384 KB 'den 1 MB' ye çevrilir. Bu ayara ilişkin ek bilgi için -Xmsobaşlıklı konuya bakın.

Hizmet yenileme 5 düzeltme paketi 36

Düzeltme paketi 36, OpenJ9 kullanıcı belgelerinde açıklandığı şekilde, Eclipse OpenJ9 sanal makinesinde aşağıdaki yeni özellikleri ve değişiklikleri içerir:

Paylaşılan sınıf önbelleği oluşturma numarasında yapılan değişiklikler

Tüm altyapılarda, paylaşılan sınıflar önbelleğinde saklanan sınıfların biçimi değiştirilir; bu değer, JVM ' nin var olan bir önbelleği yeniden yaratmak ya da yeniden kullanmak yerine yeni bir paylaşılan sınıf önbelleği yaratmasına neden olur. Alanı kaydetmek için, var olan tüm paylaşılan önbellekler, daha önceki bir yayın düzeyinde kullanılmadığı sürece kaldırılabilir.

Hizmet yenileme 5 düzeltme paketi 37

Düzeltme paketi 37, OpenJ9 kullanıcı belgelerinde açıklandığı şekilde, Eclipse OpenJ9 sanal makinesinde aşağıdaki yeni özellikleri ve değişiklikleri içerir:

Duraklatsız atık toplama için geliştirilmiş platform desteği

Koşutzamanlı scavenge kipi desteği artık IBM Züzerinde z/OS ve Linux olarak genişletilmektedir.

Şeffaf HugePagedesteği

VM şimdi madvise ayarını kullanırken Linux üzerinde çok büyük sayfaların tahsisini desteklemektedir. Bu özelliği etkinleştirmek için, uygulamanıza başladığınızda komut satırında -XX:+TransparentHugePage seçeneğini belirtin.

-XX: [ + |-] z/OS ve Linux üzerinde IBM Züzerinde desteklenenJITInlineWatches seçeneği varsayılan olarak etkinleştirilir

Daha önceki bir yayın düzeyinde kullanıma sunulan bu seçenek, JVMTI izlenen alanların performansını artırmak için tasarlanan deneysel JIT operasyonlarına dönüşür. Bu seçenek artık z/OS ve Linux üzerinde IBM Z' de desteklenmektedir ve varsayılan olarak etkindir.

OpenJDK HotSpot seçenekleri için destek

The -XX:OnOutOfMemoryError OpenJDK Hotspot option is now supported for compatibility.

-Xdiagnosticscollector seçeneğinin kaldırılması

Bu seçenek fazlaydı ve şimdi kaldırıldı.

Hizmet yenileme 5 düzeltme paketi 40

Düzeltme paketi 40, aşağıdaki güncellemeleri içerir:
JDWP somutlaması, OpenJDK eşdeğeri ile değiştirildi
JDWP is used to debug Java applications, for example as mentioned in Standart seçenekler, and Java Virtual Machine Tool Arabirimi in the OpenJ9 documentation. JDWP ' nin önceki somutlaması artık OpenJDK eşdeğeri ile değiştirilmektedir. Bu değişiklik, önceki somutlama ile ilgili bir sorunu kaldırır ve açık kaynak yazılımıyla hizalamayı artırır. Bu iki somutlama farklı olduğundan, kullanılabilir seçenekler de farklıdır. Bu seçenekler artık yok: version, src, logve trace. Bu seçenekler yenidir: launch, onthrow, onuncaught, mutf8ve quiet. Yeni JDWP somutlaması seçeneklerine ilişkin ek bilgi için komut satırı yardımına bakın:
java -agentlib:jdwp=help
Düzeltme paketi 40, OpenJ9 kullanıcı belgelerinde açıklandığı şekilde, Eclipse OpenJ9 sanal makinesinde aşağıdaki yeni özellikleri ve değişiklikleri de içerir:
İlk yığın boyutunun otomatik olarak ayarlanması
Artık VM, kullanıcının el ile boyutlandırılması ve bir -Xms değeri ayarlamaya alternatif olarak bir uygulama için uygun bir ilk yığın boyutu öğrenebilir ve ayarlayabilir. VM, başlatma işlemi sona erdiğinde, bu verileri paylaşılan sınıf önbelleğine yazmak için yığın boyutunu kaydeder. Ortalama değer, birkaç yeniden başlatma üzerinden ayarlanır ve başlangıç öbek büyüklüğü için kullanılan değerin mümkün olduğunca doğru olduğundan emin olmak için yardımcı olur. Kaydedilen öbek büyüklüğü, uygulama komut satırına özgüdür; bu nedenle, her benzersiz komut satırı için farklı bir ipucu saklanır.

Bu davranışı açmak için, uygulamanıza başladığınızda komut satırındaki -XX:+UseGCStartupHints seçeneğini ayarlayın.

Boşta GC sırasında karmaşılık için buluşsal yöntemler
Boş boş atık toplama işlemi sırasında belirli tetikleyiciler karşılandığında VM artık otomatik olarak öbek oluşturur. Bu değişikliğin bir sonucu olarak, -XX: [ + |-]IdleTuningCompactOnBoşta Duran seçeneği kullanımdan kaldırılmıştır.
-XX:IdleTuningCompactOnIdle' un davranışında değişiklik
-XX: [ + |-]IdleTuningCompactOnBoşta Duran seçeneği artık -XX:+IdleTuningGcOnIdle seçeneği belirtilmediğinde artık geçerli olmaz.
İç arabirim değişiklikleri
Ekleme API 'si iç arabirimleri, SDK ' nın iç sınıf kitaplığını ve tools.jar ve healthcenter.jar dosyalarını etkileyerek biraz değiştirilir.
  • Bir uygulama daha önceki bir yayın düzeyinden tools.jar dosyasının özel kopyasını kullanıyorsa, Java sınıfları eşleşmediği için uygulama bu yayında iliştirme API ' yı kullanamayabilir. Bunun yerine bu yayından tools.jar dosyasını kullanın.
  • Benzer şekilde, bu yayından healthcenter.jar dosyası önceki yayınlarla uyumlu değildir.

Hizmet yenileme 5 düzeltme paketi 41

Düzeltme paketi 41, OpenJ9 kullanıcı belgelerinde açıklandığı şekilde, Eclipse OpenJ9 sanal makinesinde aşağıdaki yeni özellikleri ve değişiklikleri içerir:

İlk yığın boyutunun otomatik ayarı varsayılan olarak etkindir
Bir uygulama için uygun bir öbek büyüklüğünün otomatik olarak öğrenilmesi ve ayarlanmasını etkinleştiren -XX:[+|-]UseGCStartupHints seçeneği, artık varsayılan olarak etkindir.
VM anonim sınıflarını paylaşma seçeneği
Daha önceki yayınlarda, anonim sınıflar ( Unsafe.defineAnonymousClasstarafından yaratılanlar) paylaşılan sınıf önbelleğinde saklanmadılar. Bu sınıflar varsayılan olarak orada saklanır; bu da, başlangıç başarımını artırmak için, DEFAULT (AOT) derlemesi için kullanılabilir durumda olduğu anlamına gelir. A new option, -XX:[+|-]ShareAnonymousClasses, is introduced that enables you to stop anonymous classes being stored in the shared classes cache.
JVMTI Power Systems üzerinde izlenen alanlar için performans iyileştirmeleri
JVMTI izlenen alanların performansını artırmak için JIT işlemlerini dönüştüren -XX:[+|-]JITInlineWatches seçeneği, artık Power Systems üzerinde AIX ve Linux üzerinde de desteklenir.
Linux on x86: Support for Transparent Huge Pages (THP)
x86 sistemlerinde Linux üzerinde madvise (/sys/kernel/mm/transparent_hugepage/enabled) ayarını kullandığınızda, THP varsayılan olarak etkinleştirilmiştir. Bu özelliği devre dışı bırakmak için, uygulamanıza başladığınızda komut satırında -XX:-TransparentHugePage seçeneğini ayarlayın. Diğer sistemlerdeki THP ayarı, madbe kullandığınızda varsayılan olarak devre dışı kalır, ancak -XX:+TransparentHugePageayarlanarak etkinleştirilebilir.
Paylaşılan sınıf önbelleği oluşturma numarasında yapılan değişiklikler
Paylaşılan sınıflar önbelleğinde saklanan sınıfların biçimi değiştirilir; bu, JVM ' nin var olan bir önbelleği yeniden yaratmak ya da yeniden kullanmak yerine yeni bir paylaşılan sınıf önbelleği yaratmasına neden olur. Alanı kaydetmek için, var olan tüm paylaşılan önbellekleri, daha önceki bir yayın tarafından kullanılmıyorsa kaldırabilirsiniz. Biçim değişikliğinin sonucu olarak, -Xshareclasses:listAllCaches seçeneğinin çıkışında bir katman sütunu artık görünür. Bu değişim, gelecekteki bir geliştirmeyi desteklemesidir.