SlideShare una empresa de Scribd logo
1 de 32
“Enterprise” java
puzzlers
Based on a true story
2017
Sequential Insanity
Hibernate 4 -> 5 upgrade: what happens?
@Id
@SequenceGenerator(sequenceName = ”MY_SEQ", name =
"someKeySequence")
@GeneratedValue(generator = "someKeySequence", strategy
= GenerationType.AUTO)
@Column(name = ”MY_KEY")
public Long getId()
{
return id;
}
Does	not	compileB
Cannot read EntityDWorks just fineA
Session	fails	to	initializeC
OtherE
Changes to the default optimization policy
@Target({ TYPE, METHOD, FIELD })
@Retention(RUNTIME)
public @interface SequenceGenerator {
/**
* (Optional) The amount to increment by when
allocating
* sequence numbers from the sequence.
*/
int allocationSize() default 50;
/**
* Optimizer which uses a pool of values, storing the next low value of
the
* range in the database.
* <p/>
* Note that this optimizer works essentially the same as the
* {@link org.hibernate.id.enhanced.HiLoOptimizer} except that here the
bucket ranges are actually
* encoded into the database structures.
* <p/>
* Note if you prefer that the database value be interpreted as the
bottom end of our current range,
* then use the {@link PooledLoOptimizer} strategy
*
* @author Steve Ebersole
*
* @see PooledLoOptimizer
*/
public class PooledOptimizer extends AbstractOptimizer implements
InitialValueAwareOptimizer {
“Enterprise” java
puzzlers
Based on a true story
2017
Load Imbalancer
CXF + F5 – will this work?
Will forward to Node1B
Something otherD
Will work fineA
Will forward to Node2C
Soap	web	service	CXF
Node1
Node2
Big
IP
Health	check	- ?wsdl
Where is the puzzle?
Service developersB
Something elseD
Big IPA
CXFC
Node1
Node2
Big
IP
Health	check	- ?wsdl
Logs	are	full	of	errors!	But	only	
for	service	with	many	operations.
Upgraded	to	CXF	3.X.X
Who	is	to	blame?
Where is the puzzle?
Service developersB
Something elseD
F5A
CXFC
Node1
Node2
Big
IP
Health	check	- ?wsdl
Logs	are	full	of	errors!	But	
only	for	service	with	big	wsdl.
Upgraded	to	CXF	3.X.X
Who	is	to	blame?
What's	the	fix?
“Enterprise” java
puzzlers
Based on a true story
2017
Bundle-Name: MyService bundle
Bundle-SymbolicName: com.sample.myservice
Bundle-Version: 1.0.0
Import-Package:
org.apache.commons.logging;version="1.0.4"
Export-Package:
com.sample.myservice.api;version="1.0.0"
OSGI – пощади мозги
What happens at runtime?
Our Bundle
Import-Package: my.service.provider;version=“5.0.1"
Bundle 1
Export-Package: my.service.provider;version=“5.0.3"
Bundle 2
Export-Package: my.service.provider;version=“5.0.2"
import	
my.service.provider.Service
…
Service	service =	…
Fails - Package uses conflictB
Can not load 2 bundles of same packageD
Just worksA
Fails sometimes with Class not foundC
Will always use bundle 1E Will always use bundle 2F
AppConfig.java
Version.java
ExceptionMapper.java
NonSingletonSpringResourceFactory.java
CheckInService.java
EnhancedProfileService.java
LocalDateBuilder.java
ActionsResource.java
CommunicationPreferencesResource.java
CompanyInfoResource.java
EnhancedProfileResource.java
GuestEngagementResource.java
AppConfig.java
Version.java
ExceptionMapper.java
NonSingletonSpringResourceFactory.java
CheckInService.java
EnhancedProfileService.java
LocalDateBuilder.java
ActionsResource.java
CommunicationPreferencesResource.java
CompanyInfoResource.java
EnhancedProfileResource.java
GuestEngagementResource.java
GuestPreferencesResource.java
HeartbeatFeedbackResource.java
HotelCommentsResource.java
MemberAwareResource.java
PersonalInfoResource.java
PreviousAmenitiesResource.java
ReservationsResource.java
StayHistoryResource.java
BookingResource.java
Service.java
What happens at runtime?
Our Bundle
Import-Package: my.service.provider;version=“5.0.1"
Bundle 1
Export-Package: my.service.provider;version=“5.0.3"
Bundle 2
Export-Package: my.service.provider;version=“5.0.2"
import	
my.service.provider.Service
…
Service	service =	…
Fails - Package uses conflictB
Can not load 2 bundles of same packageD
Just worksA
Fails sometimes with Class not foundC
Will always use bundle 1E Will always use bundle 2F
AppConfig.java
Version.java
ExceptionMapper.java
NonSingletonSpringResourceFactory.java
CheckInService.java
EnhancedProfileService.java
LocalDateBuilder.java
ActionsResource.java
CommunicationPreferencesResource.java
CompanyInfoResource.java
EnhancedProfileResource.java
GuestEngagementResource.java
AppConfig.java
Version.java
ExceptionMapper.java
NonSingletonSpringResourceFactory.java
CheckInService.java
EnhancedProfileService.java
LocalDateBuilder.java
ActionsResource.java
CommunicationPreferencesResource.java
CompanyInfoResource.java
EnhancedProfileResource.java
GuestEngagementResource.java
GuestPreferencesResource.java
HeartbeatFeedbackResource.java
HotelCommentsResource.java
MemberAwareResource.java
PersonalInfoResource.java
PreviousAmenitiesResource.java
ReservationsResource.java
StayHistoryResource.java
BookingResource.java
Service.java
“Enterprise” java
puzzlers
Based on a true story
2017
Innocent Transactions
Innocent Transactions
What if broker goes down?
Speed up ~3xB
Service responds with random usersD
Global catastropheA
Slowdown ~3xC
Something elseE
What if broker goes down?
Speed up ~3xB
Service responds with random usersD
Global catastropheA
Slowdown ~3xC
Something elseE
Stuck!
Innocent Transactions
Unless we prevent this
THANK YOU!
2017

Más contenido relacionado

La actualidad más candente

Maximize the power of OSGi
Maximize the power of OSGiMaximize the power of OSGi
Maximize the power of OSGiDavid Bosschaert
 
Provisioning with OSGi Subsystems and Repository using Apache Aries and Felix
Provisioning with OSGi Subsystems and Repository using Apache Aries and FelixProvisioning with OSGi Subsystems and Repository using Apache Aries and Felix
Provisioning with OSGi Subsystems and Repository using Apache Aries and FelixDavid Bosschaert
 
Reactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaReactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaMatt Stine
 
The way to set automation testing
The way to set automation testingThe way to set automation testing
The way to set automation testingDuy Tan Geek
 
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten ZiegelerMonitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegelermfrancis
 
Behind the scenes of Scaleway Functions : when Kubernetes meets our products
Behind the scenes of Scaleway Functions : when Kubernetes meets our productsBehind the scenes of Scaleway Functions : when Kubernetes meets our products
Behind the scenes of Scaleway Functions : when Kubernetes meets our productsScaleway
 
AWS ECSを用いてbatchを動かそう
AWS ECSを用いてbatchを動かそうAWS ECSを用いてbatchを動かそう
AWS ECSを用いてbatchを動かそうtaisho2
 
Building a Production Grade PostgreSQL Cloud Foundry Service | anynines
Building a Production Grade PostgreSQL Cloud Foundry Service  | anyninesBuilding a Production Grade PostgreSQL Cloud Foundry Service  | anynines
Building a Production Grade PostgreSQL Cloud Foundry Service | anyninesanynines GmbH
 
Getting the most out of rails tests
Getting the most out of rails testsGetting the most out of rails tests
Getting the most out of rails testsJustin Weiss
 
Cloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anyninesCloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anyninesanynines GmbH
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade ServerlessKatyShimizu
 
어릴 적 할머니가 들려주신 옛 wsgi
어릴 적 할머니가 들려주신 옛 wsgi어릴 적 할머니가 들려주신 옛 wsgi
어릴 적 할머니가 들려주신 옛 wsgiHyun-Mook Choi
 
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R AugeHTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Augemfrancis
 
F5 Automation and service discovery
F5 Automation and service discoveryF5 Automation and service discovery
F5 Automation and service discoveryScott van Kalken
 
How To Create EC2 instance Linux Server
How To Create EC2 instance Linux ServerHow To Create EC2 instance Linux Server
How To Create EC2 instance Linux ServerVCP Muthukrishna
 
Data migration into eav model
Data migration into eav modelData migration into eav model
Data migration into eav modelMagento Dev
 
Function as a Service in private cloud
Function as a Service in private cloud Function as a Service in private cloud
Function as a Service in private cloud lightdelay
 
Chef Automate Workflow Demo
Chef Automate Workflow DemoChef Automate Workflow Demo
Chef Automate Workflow DemoChef
 
Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~
Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~
Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~Brocade
 

La actualidad más candente (20)

Maximize the power of OSGi
Maximize the power of OSGiMaximize the power of OSGi
Maximize the power of OSGi
 
Provisioning with OSGi Subsystems and Repository using Apache Aries and Felix
Provisioning with OSGi Subsystems and Repository using Apache Aries and FelixProvisioning with OSGi Subsystems and Repository using Apache Aries and Felix
Provisioning with OSGi Subsystems and Repository using Apache Aries and Felix
 
Reactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJavaReactive Fault Tolerant Programming with Hystrix and RxJava
Reactive Fault Tolerant Programming with Hystrix and RxJava
 
The way to set automation testing
The way to set automation testingThe way to set automation testing
The way to set automation testing
 
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten ZiegelerMonitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
 
Behind the scenes of Scaleway Functions : when Kubernetes meets our products
Behind the scenes of Scaleway Functions : when Kubernetes meets our productsBehind the scenes of Scaleway Functions : when Kubernetes meets our products
Behind the scenes of Scaleway Functions : when Kubernetes meets our products
 
AWS ECSを用いてbatchを動かそう
AWS ECSを用いてbatchを動かそうAWS ECSを用いてbatchを動かそう
AWS ECSを用いてbatchを動かそう
 
Building a Production Grade PostgreSQL Cloud Foundry Service | anynines
Building a Production Grade PostgreSQL Cloud Foundry Service  | anyninesBuilding a Production Grade PostgreSQL Cloud Foundry Service  | anynines
Building a Production Grade PostgreSQL Cloud Foundry Service | anynines
 
Getting the most out of rails tests
Getting the most out of rails testsGetting the most out of rails tests
Getting the most out of rails tests
 
Cloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anyninesCloud infrastructures - Slide Set 6 - BOSH | anynines
Cloud infrastructures - Slide Set 6 - BOSH | anynines
 
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
[NDC 2019] Functions 2.0: Enterprise-Grade Serverless
 
어릴 적 할머니가 들려주신 옛 wsgi
어릴 적 할머니가 들려주신 옛 wsgi어릴 적 할머니가 들려주신 옛 wsgi
어릴 적 할머니가 들려주신 옛 wsgi
 
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R AugeHTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
HTTP Whiteboard - OSGI Compendium 6.0 - How web apps should have been! - R Auge
 
F5 Automation and service discovery
F5 Automation and service discoveryF5 Automation and service discovery
F5 Automation and service discovery
 
Everything as a code
Everything as a codeEverything as a code
Everything as a code
 
How To Create EC2 instance Linux Server
How To Create EC2 instance Linux ServerHow To Create EC2 instance Linux Server
How To Create EC2 instance Linux Server
 
Data migration into eav model
Data migration into eav modelData migration into eav model
Data migration into eav model
 
Function as a Service in private cloud
Function as a Service in private cloud Function as a Service in private cloud
Function as a Service in private cloud
 
Chef Automate Workflow Demo
Chef Automate Workflow DemoChef Automate Workflow Demo
Chef Automate Workflow Demo
 
Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~
Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~
Event-driven automation, DevOps way ~IoT時代の自動化、そのリアリティとは?~
 

Destacado (11)

Types of rainfall
Types of rainfallTypes of rainfall
Types of rainfall
 
Rainfall revision task
Rainfall revision taskRainfall revision task
Rainfall revision task
 
Types of rainfall
Types of rainfallTypes of rainfall
Types of rainfall
 
Types of Rainfall
Types of RainfallTypes of Rainfall
Types of Rainfall
 
Rainfall ppt
Rainfall pptRainfall ppt
Rainfall ppt
 
The Art of Clouds
The Art of CloudsThe Art of Clouds
The Art of Clouds
 
Types of rainfall
Types of rainfallTypes of rainfall
Types of rainfall
 
08 Rainfall Ppt 08
08   Rainfall Ppt 0808   Rainfall Ppt 08
08 Rainfall Ppt 08
 
The clouds
The cloudsThe clouds
The clouds
 
Cloud Types Presentation
Cloud Types PresentationCloud Types Presentation
Cloud Types Presentation
 
Slideshare ppt
Slideshare pptSlideshare ppt
Slideshare ppt
 

Similar a Enterprise Java Puzzlers

MySQL 8.0 from December London Open Source Database Meetup
MySQL 8.0 from December London Open Source Database MeetupMySQL 8.0 from December London Open Source Database Meetup
MySQL 8.0 from December London Open Source Database MeetupDave Stokes
 
「Code igniter」を読もう。〜ソースコードから知る仕様や拡張方法〜
「Code igniter」を読もう。〜ソースコードから知る仕様や拡張方法〜 「Code igniter」を読もう。〜ソースコードから知る仕様や拡張方法〜
「Code igniter」を読もう。〜ソースコードから知る仕様や拡張方法〜 Makoto Kaga
 
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinItb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinGavin Pickin
 
Highload JavaScript Framework without Inheritance
Highload JavaScript Framework without InheritanceHighload JavaScript Framework without Inheritance
Highload JavaScript Framework without InheritanceFDConf
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and LingvokotLingvokot
 
Building A Sensor Network Controller
Building A Sensor Network ControllerBuilding A Sensor Network Controller
Building A Sensor Network Controllermichaelpigg
 
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedJetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedToru Wonyoung Choi
 
Expanding your impact with programmability in the data center
Expanding your impact with programmability in the data centerExpanding your impact with programmability in the data center
Expanding your impact with programmability in the data centerCisco Canada
 
Intro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler JewellIntro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler Jewelljwi11iams
 
Managing enterprise client deployment with p2
Managing enterprise client deployment with p2Managing enterprise client deployment with p2
Managing enterprise client deployment with p2Thomas Kratz
 
AutoScaling and Drupal
AutoScaling and DrupalAutoScaling and Drupal
AutoScaling and DrupalPromet Source
 
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and ScalabilityIBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and ScalabilityPaul Withers
 
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
Maximise the Power of OSGi - Carsten Ziegeler & David BosschaertMaximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaertmfrancis
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Amazon Web Services
 
Running Vue Storefront in production (PWA Magento webshop)
Running Vue Storefront in production (PWA Magento webshop)Running Vue Storefront in production (PWA Magento webshop)
Running Vue Storefront in production (PWA Magento webshop)Vendic Magento, PWA & Marketing
 
BeJUG Meetup - What's coming in the OSGi R7 Specification
BeJUG Meetup - What's coming in the OSGi R7 SpecificationBeJUG Meetup - What's coming in the OSGi R7 Specification
BeJUG Meetup - What's coming in the OSGi R7 SpecificationStijn Van Den Enden
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsVikash Singh
 
Flask jwt authentication tutorial
Flask jwt authentication tutorialFlask jwt authentication tutorial
Flask jwt authentication tutorialKaty Slemon
 

Similar a Enterprise Java Puzzlers (20)

MySQL 8.0 from December London Open Source Database Meetup
MySQL 8.0 from December London Open Source Database MeetupMySQL 8.0 from December London Open Source Database Meetup
MySQL 8.0 from December London Open Source Database Meetup
 
「Code igniter」を読もう。〜ソースコードから知る仕様や拡張方法〜
「Code igniter」を読もう。〜ソースコードから知る仕様や拡張方法〜 「Code igniter」を読もう。〜ソースコードから知る仕様や拡張方法〜
「Code igniter」を読もう。〜ソースコードから知る仕様や拡張方法〜
 
Hybrid Applications
Hybrid ApplicationsHybrid Applications
Hybrid Applications
 
Itb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin PickinItb 2021 - Bulding Quick APIs by Gavin Pickin
Itb 2021 - Bulding Quick APIs by Gavin Pickin
 
Highload JavaScript Framework without Inheritance
Highload JavaScript Framework without InheritanceHighload JavaScript Framework without Inheritance
Highload JavaScript Framework without Inheritance
 
Gitlab and Lingvokot
Gitlab and LingvokotGitlab and Lingvokot
Gitlab and Lingvokot
 
Building A Sensor Network Controller
Building A Sensor Network ControllerBuilding A Sensor Network Controller
Building A Sensor Network Controller
 
Jetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO ExtendedJetpack, with new features in 2021 GDG Georgetown IO Extended
Jetpack, with new features in 2021 GDG Georgetown IO Extended
 
Expanding your impact with programmability in the data center
Expanding your impact with programmability in the data centerExpanding your impact with programmability in the data center
Expanding your impact with programmability in the data center
 
Intro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler JewellIntro to Eclipse Che, by Tyler Jewell
Intro to Eclipse Che, by Tyler Jewell
 
Managing enterprise client deployment with p2
Managing enterprise client deployment with p2Managing enterprise client deployment with p2
Managing enterprise client deployment with p2
 
AutoScaling and Drupal
AutoScaling and DrupalAutoScaling and Drupal
AutoScaling and Drupal
 
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and ScalabilityIBM ConnectED 2015 - MAS103 XPages Performance and Scalability
IBM ConnectED 2015 - MAS103 XPages Performance and Scalability
 
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
Maximise the Power of OSGi - Carsten Ziegeler & David BosschaertMaximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
Maximise the Power of OSGi - Carsten Ziegeler & David Bosschaert
 
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017Deep Dive into AWS Fargate - CON333 - re:Invent 2017
Deep Dive into AWS Fargate - CON333 - re:Invent 2017
 
Running Vue Storefront in production (PWA Magento webshop)
Running Vue Storefront in production (PWA Magento webshop)Running Vue Storefront in production (PWA Magento webshop)
Running Vue Storefront in production (PWA Magento webshop)
 
JBoss World 2010
JBoss World 2010JBoss World 2010
JBoss World 2010
 
BeJUG Meetup - What's coming in the OSGi R7 Specification
BeJUG Meetup - What's coming in the OSGi R7 SpecificationBeJUG Meetup - What's coming in the OSGi R7 Specification
BeJUG Meetup - What's coming in the OSGi R7 Specification
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Flask jwt authentication tutorial
Flask jwt authentication tutorialFlask jwt authentication tutorial
Flask jwt authentication tutorial
 

Último

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 

Último (20)

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 

Enterprise Java Puzzlers

  • 3. Hibernate 4 -> 5 upgrade: what happens? @Id @SequenceGenerator(sequenceName = ”MY_SEQ", name = "someKeySequence") @GeneratedValue(generator = "someKeySequence", strategy = GenerationType.AUTO) @Column(name = ”MY_KEY") public Long getId() { return id; } Does not compileB Cannot read EntityDWorks just fineA Session fails to initializeC OtherE
  • 4.
  • 5. Changes to the default optimization policy @Target({ TYPE, METHOD, FIELD }) @Retention(RUNTIME) public @interface SequenceGenerator { /** * (Optional) The amount to increment by when allocating * sequence numbers from the sequence. */ int allocationSize() default 50; /** * Optimizer which uses a pool of values, storing the next low value of the * range in the database. * <p/> * Note that this optimizer works essentially the same as the * {@link org.hibernate.id.enhanced.HiLoOptimizer} except that here the bucket ranges are actually * encoded into the database structures. * <p/> * Note if you prefer that the database value be interpreted as the bottom end of our current range, * then use the {@link PooledLoOptimizer} strategy * * @author Steve Ebersole * * @see PooledLoOptimizer */ public class PooledOptimizer extends AbstractOptimizer implements InitialValueAwareOptimizer {
  • 8. CXF + F5 – will this work? Will forward to Node1B Something otherD Will work fineA Will forward to Node2C Soap web service CXF Node1 Node2 Big IP Health check - ?wsdl
  • 9. Where is the puzzle? Service developersB Something elseD Big IPA CXFC Node1 Node2 Big IP Health check - ?wsdl Logs are full of errors! But only for service with many operations. Upgraded to CXF 3.X.X Who is to blame?
  • 10.
  • 11. Where is the puzzle? Service developersB Something elseD F5A CXFC Node1 Node2 Big IP Health check - ?wsdl Logs are full of errors! But only for service with big wsdl. Upgraded to CXF 3.X.X Who is to blame?
  • 14. Bundle-Name: MyService bundle Bundle-SymbolicName: com.sample.myservice Bundle-Version: 1.0.0 Import-Package: org.apache.commons.logging;version="1.0.4" Export-Package: com.sample.myservice.api;version="1.0.0" OSGI – пощади мозги
  • 15. What happens at runtime? Our Bundle Import-Package: my.service.provider;version=“5.0.1" Bundle 1 Export-Package: my.service.provider;version=“5.0.3" Bundle 2 Export-Package: my.service.provider;version=“5.0.2" import my.service.provider.Service … Service service = … Fails - Package uses conflictB Can not load 2 bundles of same packageD Just worksA Fails sometimes with Class not foundC Will always use bundle 1E Will always use bundle 2F AppConfig.java Version.java ExceptionMapper.java NonSingletonSpringResourceFactory.java CheckInService.java EnhancedProfileService.java LocalDateBuilder.java ActionsResource.java CommunicationPreferencesResource.java CompanyInfoResource.java EnhancedProfileResource.java GuestEngagementResource.java AppConfig.java Version.java ExceptionMapper.java NonSingletonSpringResourceFactory.java CheckInService.java EnhancedProfileService.java LocalDateBuilder.java ActionsResource.java CommunicationPreferencesResource.java CompanyInfoResource.java EnhancedProfileResource.java GuestEngagementResource.java GuestPreferencesResource.java HeartbeatFeedbackResource.java HotelCommentsResource.java MemberAwareResource.java PersonalInfoResource.java PreviousAmenitiesResource.java ReservationsResource.java StayHistoryResource.java BookingResource.java Service.java
  • 16.
  • 17. What happens at runtime? Our Bundle Import-Package: my.service.provider;version=“5.0.1" Bundle 1 Export-Package: my.service.provider;version=“5.0.3" Bundle 2 Export-Package: my.service.provider;version=“5.0.2" import my.service.provider.Service … Service service = … Fails - Package uses conflictB Can not load 2 bundles of same packageD Just worksA Fails sometimes with Class not foundC Will always use bundle 1E Will always use bundle 2F AppConfig.java Version.java ExceptionMapper.java NonSingletonSpringResourceFactory.java CheckInService.java EnhancedProfileService.java LocalDateBuilder.java ActionsResource.java CommunicationPreferencesResource.java CompanyInfoResource.java EnhancedProfileResource.java GuestEngagementResource.java AppConfig.java Version.java ExceptionMapper.java NonSingletonSpringResourceFactory.java CheckInService.java EnhancedProfileService.java LocalDateBuilder.java ActionsResource.java CommunicationPreferencesResource.java CompanyInfoResource.java EnhancedProfileResource.java GuestEngagementResource.java GuestPreferencesResource.java HeartbeatFeedbackResource.java HotelCommentsResource.java MemberAwareResource.java PersonalInfoResource.java PreviousAmenitiesResource.java ReservationsResource.java StayHistoryResource.java BookingResource.java Service.java
  • 21. What if broker goes down? Speed up ~3xB Service responds with random usersD Global catastropheA Slowdown ~3xC Something elseE
  • 22.
  • 23. What if broker goes down? Speed up ~3xB Service responds with random usersD Global catastropheA Slowdown ~3xC Something elseE
  • 24.
  • 27.
  • 28.
  • 29.
  • 31.