Yes, there's a ticket [1]. With respect to a query returning a million times etc., I take the view that this would be a modelling error... No user wants to browse over so many rows. I think the framework should, therefore, automatically limit the number of rows, eg to 1000 (configurable).
I'll look to do that in the same ticket. Thx, Dan. [1] https://issues.apache.org/jira/browse/ISIS-1774 On Fri, 17 Nov 2017 at 10:46 Serdar Hamzaogullari <[email protected]> wrote: > Hi Dan, > > Let me remind you that also: at the first table render still we have a > Select all sql query right ? Think we have one million record on table. > Select all and buffer these objects at memory can cause an out of memory. > At the first table render before pagination you can apply the pagination > first page operation so that we never have a select all query. > > Did you create a ticket for this pagination issue ? How can I follow ? Can > I contribute ? I did not go inside the isis codes before. Maybe you can > point me to the related codes. > > On Fri, Nov 17, 2017 at 1:03 PM, Dan Haywood <[email protected] > > > wrote: > > > Hi Serdar, > > Yeah, saw your email, been mulling on the best solution for this. > > > > The issue is that behind the scenes Isis creates a serializable (wicket) > > model which is the identity (oid) of each object to be rendered. When > the > > user navigates to the second page, we just render the next set of objects > > from this list, rehyrdating each from the serialized oid one by one. > > > > I can think of two possible improvements. > > > > The first, probably easier, would be to keep the same general > architecture, > > but to optimize things so that the framework does a single bulk request > of > > all object to be rendered. I would imagine that would result in a single > > SELECT FROM WHERE id in (x, y, z, a, b, ...) . That's fine for a > small-ish > > number of objects (for example, SQL Server and Sybase have an upper limit > > of ~1000 before they table scan). > > > > The second idea I have would be to change the architecture such that on > > pagination we resubmit the original query, but then keep track of where > > we're up to, eg instances 16~30 or 31~45 etc. I think that would be more > > work because the table being rendered would need to keep a memento of > that > > query, as well as which page we're on. > > > > I'll have a go at implementing the first idea as a first pass; hopefully > > will be quite easy. > > > > Thx > > Dan > > > > On Fri, 17 Nov 2017 at 09:15 Serdar Hamzaogullari < > [email protected] > > > > > wrote: > > > > > Hello Dan, > > > > > > Maybe you missed my email. Did you investigate the pagination > performance > > > problem that I indicated in my previous email ? > > > > > > On Mon, Nov 13, 2017 at 11:50 AM, Serdar Hamzaogullari < > > > [email protected]> wrote: > > > > > > > Hi Dan, > > > > > > > > Thanks for the solution. I tried it and it works fine for get all > menu > > > > action however if I click to any page in the pagination list I see > the > > > sql > > > > queries for all entries again. > > > > > > > > I think we need to solve the pagination performance problem. > > > > > > > > On Sun, Nov 12, 2017 at 7:57 PM, Dan Haywood < > > > [email protected] > > > > > wrote: > > > > > > > >> Hi Serdar, > > > >> > > > >> I did. And here's the thing ... the framework has always done this > > (at > > > >> least since 1.8.0, which was the first version I tested). So, my > > > >> apologies > > > >> for indicating otherwise. > > > >> > > > >> Clearly we ought to do better here, and I do have a workaround which > > you > > > >> could try out. In your application's DomainApplication (subclass of > > > >> IsisWicketApplication), add the following to the end of the init() > > > method: > > > >> > > > >> > > > >> getRequestCycleSettings().setRenderStrategy(RequestCycleSett > > > >> ings.RenderStrategy.REDIRECT_TO_BUFFER); > > > >> > > > >> By default we use the REDIRECT_TO_RENDER strategy ... I dimly recall > > my > > > >> rationale as being that it's "safer"; this Wicket wiki page [1] > > explains > > > >> the difference. However, this is what causes the 1+N loading that > we > > > see. > > > >> A first Isis/DN session is used to select the objects, and mementos > > for > > > >> all > > > >> retrieved objects are captured. This first session is then closed. > > On > > > >> render, we then open a new Isis/DN session and use those mementos to > > > >> retrieve all objects one by one. > > > >> > > > >> Using REDIRECT_TO_BUFFER means that all the work is done in a single > > > >> session, avoiding the issue. > > > >> > > > >> My limited testing didn't throw up any adverse effects to switching > to > > > >> REDIRECT_TO_BUFFER, and I've raised a ticket [2] to explore changing > > > this > > > >> behaviour. > > > >> > > > >> Thanks for raising this, let me know how you get on. > > > >> > > > >> Cheers > > > >> Dan > > > >> > > > >> [1] > > > https://cwiki.apache.org/confluence/display/WICKET/Render+strategies > > > >> [2] https://issues.apache.org/jira/browse/ISIS-1774 > > > >> > > > >> > > > >> On Sat, 11 Nov 2017 at 20:30 Serdar Hamzaogullari < > > > >> [email protected]> > > > >> wrote: > > > >> > > > >> > Hello Dan, > > > >> > > > > >> > Did you have a chance to take look at my github example app > > > >> > > > > >> > 9 Kas 2017 Per, saat 16:22 tarihinde Serdar Hamzaogullari < > > > >> > [email protected]> şunu yazdı: > > > >> > > > > >> > > Hi Dan, > > > >> > > > > > >> > > Here is a complete example of the problem > > > >> > > > > > >> > > https://github.com/radresian/apache-isis-sample > > > >> > > > > > >> > > After running the application Click the ProfilePreferences Menu > -> > > > >> List > > > >> > > All, then you will see the SQL queries for each entry at the > > console > > > >> > logs... > > > >> > > > > > >> > > On Thu, Nov 9, 2017 at 2:17 AM, Dan Haywood < > > > >> > [email protected]> > > > >> > > wrote: > > > >> > > > > > >> > >> Hmm, looks ok. > > > >> > >> > > > >> > >> Can you upload an example app to github so I can pull it down > and > > > >> take a > > > >> > >> closer look? > > > >> > >> > > > >> > >> Thx > > > >> > >> Dan > > > >> > >> > > > >> > >> On Wed, 8 Nov 2017 at 23:12 Serdar Hamzaogullari < > > > >> > [email protected] > > > >> > >> > > > > >> > >> wrote: > > > >> > >> > > > >> > >> > Hi Jörg, > > > >> > >> > > > > >> > >> > IdGeneratorStrategy.IDENTITY did not help. Same result. > > > >> > >> > > > > >> > >> > Hi Dan, > > > >> > >> > > > > >> > >> > Here is my repository: > > > >> > >> > > > > >> > >> > > > > >> > >> > @DomainService( > > > >> > >> > nature = NatureOfService.DOMAIN, > > > >> > >> > repositoryFor = ProfilePreferences.class > > > >> > >> > ) > > > >> > >> > public class ProfilePreferencesRepository { > > > >> > >> > > > > >> > >> > public List<ProfilePreferences> listAll() { > > > >> > >> > return > > > >> > repositoryService.allInstances(ProfilePreferences.class); > > > >> > >> > } > > > >> > >> > > > > >> > >> > public ProfilePreferences get(final String name) { > > > >> > >> > return repositoryService.uniqueMatch( > > > >> > >> > new QueryDefault<>( > > > >> > >> > ProfilePreferences.class, > > > >> > >> > "get", > > > >> > >> > "name", name)); > > > >> > >> > } > > > >> > >> > > > > >> > >> > public ProfilePreferences create(final String name) { > > > >> > >> > final ProfilePreferences object = new > > > >> > ProfilePreferences(name); > > > >> > >> > serviceRegistry.injectServicesInto(object); > > > >> > >> > repositoryService.persist(object); > > > >> > >> > return object; > > > >> > >> > } > > > >> > >> > > > > >> > >> > @javax.inject.Inject > > > >> > >> > RepositoryService repositoryService; > > > >> > >> > @javax.inject.Inject > > > >> > >> > ServiceRegistry2 serviceRegistry; > > > >> > >> > } > > > >> > >> > > > > >> > >> > > > > >> > >> > > > > >> > >> > On Wed, Nov 8, 2017 at 8:16 PM, Dan Haywood < > > > >> > >> [email protected]> > > > >> > >> > wrote: > > > >> > >> > > > > >> > >> > > Hi Serdar, > > > >> > >> > > > > > >> > >> > > can you show us your repository implementation? > > > >> > >> > > > > > >> > >> > > I'm wondering why you have defined a query called "Get", I > > > >> wonder if > > > >> > >> it's > > > >> > >> > > being used in that repo (I don't think it should be, if so) > > > >> > >> > > > > > >> > >> > > Ta > > > >> > >> > > Dan > > > >> > >> > > > > > >> > >> > > > > > >> > >> > > On Wed, 8 Nov 2017 at 17:09 Rade, Joerg / Kuehne + Nagel / > > Ham > > > >> > GI-DP < > > > >> > >> > > [email protected]> wrote: > > > >> > >> > > > > > >> > >> > > > Hi Serdar, > > > >> > >> > > > > > > >> > >> > > > did you consider: > > > >> > >> > > > > > > >> > >> > > > @javax.jdo.annotations.DatastoreIdentity( > > > >> > >> > > > strategy = > > > >> > >> javax.jdo.annotations.IdGeneratorStrategy.IDENTITY, > > > >> > >> > > > column = "id") > > > >> > >> > > > > > > >> > >> > > > instead of: > > > >> > >> > > > > > > >> > >> > > > @PrimaryKey? > > > >> > >> > > > > > > >> > >> > > > Best regards > > > >> > >> > > > Jörg > > > >> > >> > > > > > > >> > >> > > > -----Ursprüngliche Nachricht----- > > > >> > >> > > > Von: Serdar Hamzaogullari [mailto: > [email protected]] > > > >> > >> > > > Gesendet: Mittwoch, 8. November 2017 17:07 > > > >> > >> > > > An: [email protected] > > > >> > >> > > > Betreff: Menu getAll action returns table with many sql > > > queries > > > >> > for > > > >> > >> > each > > > >> > >> > > > entry > > > >> > >> > > > > > > >> > >> > > > Hi, > > > >> > >> > > > > > > >> > >> > > > I have a menu action like this, listAll action: > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > @DomainService( > > > >> > >> > > > nature = NatureOfService.VIEW_MENU_ONLY, > > > >> > >> > > > objectType = "profile-preferences-services", > > > >> > >> > > > repositoryFor = ProfilePreferences.class > > > >> > >> > > > ) > > > >> > >> > > > @DomainServiceLayout( > > > >> > >> > > > named = "Profile Preferences", > > > >> > >> > > > menuOrder = "3" > > > >> > >> > > > ) > > > >> > >> > > > public class ProfilePreferencesMenu { > > > >> > >> > > > > > > >> > >> > > > @Action(semantics = SemanticsOf.SAFE) > > > >> > >> > > > @ActionLayout(bookmarking = BookmarkPolicy.AS_ROOT) > > > >> > >> > > > @MemberOrder(sequence = "1") > > > >> > >> > > > public List<ProfilePreferences> listAll() { > > > >> > >> > > > return profilePreferencesRepository.listAll(); > > > >> > >> > > > } > > > >> > >> > > > . > > > >> > >> > > > . > > > >> > >> > > > . > > > >> > >> > > > > > > >> > >> > > > My Entity is that: > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > @javax.jdo.annotations.PersistenceCapable( > > > >> > >> > > > identityType=IdentityType.APPLICATION, > > > >> > >> > > > table="profile_preferences", > > > >> > >> > > > schema = "dbo" > > > >> > >> > > > ) > > > >> > >> > > > @javax.jdo.annotations.Version( > > > >> > >> > > > strategy= VersionStrategy.VERSION_NUMBER, > > > >> > >> > > > column="version") > > > >> > >> > > > @javax.jdo.annotations.Queries({ > > > >> > >> > > > @javax.jdo.annotations.Query( > > > >> > >> > > > name = "get", > > > >> > >> > > > value = "SELECT " > > > >> > >> > > > + "FROM > > > >> > >> > > > > > > com.foreks.user.settings.domain.preferences.ProfilePreferences > > > >> " > > > >> > >> > > > + "WHERE > > profileName.equals(:name)") > > > >> > >> > > > }) > > > >> > >> > > > @DomainObject( > > > >> > >> > > > objectType = "profile-preferences" > > > >> > >> > > > ) > > > >> > >> > > > public class ProfilePreferences implements > > > >> > >> > > Comparable<ProfilePreferences> { > > > >> > >> > > > > > > >> > >> > > > public ProfilePreferences(final String profileName) { > > > >> > >> > > > setProfileName(profileName); > > > >> > >> > > > } > > > >> > >> > > > > > > >> > >> > > > @javax.jdo.annotations.Column(allowsNull = "false", > > > >> length= > > > >> > 150) > > > >> > >> > > > @PrimaryKey > > > >> > >> > > > @Getter @Setter > > > >> > >> > > > @Title(prepend = "Profile Preferences: ") > > > >> > >> > > > private String profileName; > > > >> > >> > > > > > > >> > >> > > > @javax.jdo.annotations.Column(allowsNull = "true", > > length > > > >> = > > > >> > >> 4000) > > > >> > >> > > > @Property(editing = Editing.ENABLED,hidden = > > > >> Where.ALL_TABLES) > > > >> > >> > > > @Getter @Setter > > > >> > >> > > > private String preferences; > > > >> > >> > > > > > > >> > >> > > > //region > delete (action) > > > >> > >> > > > @Action(semantics = SemanticsOf.NON_IDEMPOTENT_ARE > > > >> _YOU_SURE) > > > >> > >> > > > public void delete() { > > > >> > >> > > > final String title = titleService.titleOf(this); > > > >> > >> > > > messageService.informUser(String.format("'%s' > > > >> deleted", > > > >> > >> > title)); > > > >> > >> > > > repositoryService.remove(this); > > > >> > >> > > > } > > > >> > >> > > > //endregion > > > >> > >> > > > > > > >> > >> > > > //region > delete (action) > > > >> > >> > > > @Action(semantics = SemanticsOf.NON_IDEMPOTENT) > > > >> > >> > > > public ProfilePreferences > > copy(@ParameterLayout(named="P > > > >> rofile > > > >> > >> > > Name") > > > >> > >> > > > String name) { > > > >> > >> > > > final ProfilePreferences object = new > > > >> > >> ProfilePreferences(name); > > > >> > >> > > > object.setPreferences(preferences); > > > >> > >> > > > repositoryService.persist(object); > > > >> > >> > > > return object; > > > >> > >> > > > } > > > >> > >> > > > //endregion > > > >> > >> > > > > > > >> > >> > > > //region > toString, compareTo > > > >> > >> > > > @Override > > > >> > >> > > > public String toString() { > > > >> > >> > > > return ObjectContracts.toString(this, > > "profileName"); > > > >> > >> > > > } > > > >> > >> > > > > > > >> > >> > > > @Override > > > >> > >> > > > public int compareTo(final ProfilePreferences other) > { > > > >> > >> > > > return ObjectContracts.compare(this, other, > > > >> > "profileName"); > > > >> > >> > > > } > > > >> > >> > > > //endregion > > > >> > >> > > > > > > >> > >> > > > //region > injected services > > > >> > >> > > > @javax.inject.Inject > > > >> > >> > > > RepositoryService repositoryService; > > > >> > >> > > > > > > >> > >> > > > @javax.inject.Inject > > > >> > >> > > > TitleService titleService; > > > >> > >> > > > > > > >> > >> > > > @javax.inject.Inject > > > >> > >> > > > MessageService messageService; > > > >> > >> > > > //endregion > > > >> > >> > > > > > > >> > >> > > > } > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > When I click the List All action from the wicket viewer > > menu, > > > >> > server > > > >> > >> > logs > > > >> > >> > > > this SQL queries: > > > >> > >> > > > > > > >> > >> > > > 19:03:07,334 [Native http-nio-8080-exec-4 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > 'com.foreks.user.settings.domain.preferences. > > ProfilePreferen > > > >> ces' > > > >> > AS > > > >> > >> > > > NUCLEUS_TYPE,A0.preferences,A0.profileName,A0.version > FROM > > > >> > >> > > > dbo.profile_preferences A0 > > > >> > >> > > > 19:03:07,436 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'ahl'> > > > >> > >> > > > 19:03:07,442 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'akbank'> > > > >> > >> > > > 19:03:07,448 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'bmd'> > > > >> > >> > > > 19:03:07,454 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'DELTA'> > > > >> > >> > > > 19:03:07,460 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'foreks'> > > > >> > >> > > > 19:03:07,466 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'halky'> > > > >> > >> > > > 19:03:07,472 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'hcbs'> > > > >> > >> > > > 19:03:07,477 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'issanal'> > > > >> > >> > > > 19:03:07,483 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'marbas'> > > > >> > >> > > > 19:03:07,489 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'odeabank'> > > > >> > >> > > > 19:03:07,495 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'odtu'> > > > >> > >> > > > 19:03:07,500 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'osmanli'> > > > >> > >> > > > 19:03:07,506 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'piramit'> > > > >> > >> > > > 19:03:07,512 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'tebsanal'> > > > >> > >> > > > 19:03:07,517 [Native http-nio-8080-exec-5 > > > DEBUG] > > > >> > >> SELECT > > > >> > >> > > > A0.preferences,A0.version FROM dbo.profile_preferences A0 > > > WHERE > > > >> > >> > > > A0.profileName = <'ZIRAAT'> > > > >> > >> > > > > > > >> > >> > > > > > > >> > >> > > > There is a query for each entity. The firs query > > > >> > >> > > > > > > >> > >> > > > SELECT > > > >> > >> > 'com.foreks.user.settings.domain.preferences. > > ProfilePreferences' > > > >> > >> > > > AS NUCLEUS_TYPE,A0.preferences,A0.profileName,A0.version > > FROM > > > >> > >> > > > dbo.profile_preferences A0 > > > >> > >> > > > > > > >> > >> > > > should be enough. Query for every entity becomes a > > > performance > > > >> > >> problem. > > > >> > >> > > > How can I prevent this behavior ? Is there some thing > wrong > > > or > > > >> > >> missing > > > >> > >> > in > > > >> > >> > > > my Entity Class or Menu Action Class ? > > > >> > >> > > > > > > >> > >> > > > Help please :) > > > >> > >> > > > > > > >> > >> > > > -- > > > >> > >> > > > <http://www.foreksmobile.com/redirect.html> > > > >> > >> > > > > > > >> > >> > > > P > > > >> > >> > > > > > > >> > >> > > > Bu mesaji yazdirmadan önce çevreye olan sorumlulugumuzu > bir > > > kez > > > >> > daha > > > >> > >> > > > düsünelim. > > > >> > >> > > > Please consider the environment before printing this > > e-mail. > > > >> > >> > > > > > > >> > >> > > > Bu elektronik posta ve onunla iletilen bütün dosyalar > > sadece > > > >> > >> > göndericisi > > > >> > >> > > > tarafından alması amaçlanan yetkili gerçek ya da tüzel > > > kişinin > > > >> > >> > kullanımı > > > >> > >> > > > içindir. Eğer söz konusu yetkili alıcı değilseniz bu > > > elektronik > > > >> > >> > postanın > > > >> > >> > > > içeriğini açıklamanız, kopyalamanız, yönlendirmeniz ve > > > >> kullanmanız > > > >> > >> > > > kesinlikle yasaktır ve bu elektronik postayı derhal > > silmeniz > > > >> > >> > > gerekmektedir. > > > >> > >> > > > FOREKS bu mesajın içerdiği bilgilerin doğruluğu veya > > eksiksiz > > > >> > olduğu > > > >> > >> > > > konusunda herhangi bir garanti vermemektedir. Bu nedenle > bu > > > >> > >> bilgilerin > > > >> > >> > ne > > > >> > >> > > > şekilde olursa olsun içeriğinden, iletilmesinden, > > > alınmasından > > > >> ve > > > >> > >> > > > saklanmasından sorumlu değildir. Bu mesajdaki görüşler > > > yalnızca > > > >> > >> > gönderen > > > >> > >> > > > kişiye aittir ve FOREKS'in görüşlerini yansıtmayabilir. > > > >> > >> > > > Bu e-posta bilinen bütün bilgisayar virüslerine karşı > > > >> taranmıştır. > > > >> > >> > > > * > > > >> > >> > > > This e-mail and any files transmitted with it are > > > confidential > > > >> and > > > >> > >> > > > intended solely for the use of the individual or entity > to > > > whom > > > >> > they > > > >> > >> > are > > > >> > >> > > > addressed. > > > >> > >> > > > If you are not the intended recipient you are hereby > > notified > > > >> that > > > >> > >> any > > > >> > >> > > > dissemination, forwarding, copying or use of any of the > > > >> > information > > > >> > >> is > > > >> > >> > > > strictly prohibited, and the e-mail should immediately be > > > >> deleted. > > > >> > >> > FOREKS > > > >> > >> > > > makes no warranty as to the accuracy or completeness of > any > > > >> > >> information > > > >> > >> > > > contained in this message and hereby excludes any > liability > > > of > > > >> any > > > >> > >> kind > > > >> > >> > > for > > > >> > >> > > > the information contained therein or for the information > > > >> > >> transmission, > > > >> > >> > > > reception, storage or use of such in any way whatsoever. > > The > > > >> > >> opinions > > > >> > >> > > > expressed in this message belong to sender alone and may > > not > > > >> > >> > necessarily > > > >> > >> > > > reflect the opinions of FOREKS. > > > >> > >> > > > This e-mail has been scanned for all known computer > > viruses. > > > >> > >> > > > > > > >> > >> > > > Kühne + Nagel (AG & Co.) KG > > > >> > >> > > > Rechtsform: Kommanditgesellschaft, Bremen HRA 21928, > > > >> USt-IdNr.: DE > > > >> > >> > > > 812773878. > > > >> > >> > > > Geschäftsleitung Kühne + Nagel (AG & Co.) KG: Dr. > Hansjörg > > > Rodi > > > >> > >> (Vors. > > > >> > >> > ), > > > >> > >> > > > Martin Brinkmann, Holger Ketz, Jan-Hendrik Köstergarten, > > > >> Nicholas > > > >> > >> > Minde, > > > >> > >> > > > Michael Nebel, Lars Wedel, Matthias Weiner. > > > >> > >> > > > Persönlich haftende Gesellschafterin: Kühne & Nagel A.G., > > > >> > >> Rechtsform: > > > >> > >> > > > Aktiengesellschaft nach luxemburgischem Recht, HR-Nr.: B > > > 18745, > > > >> > >> > > > Geschäftsführendes Verwaltungsratsmitglied: Karl > Gernandt. > > > >> > >> > > > Geschäftsleitung Region Zentral- und Osteuropa: Dr. > > Hansjörg > > > >> Rodi > > > >> > >> > > (Vors.), > > > >> > >> > > > Thierry Held, Uwe Hött, Richard Huhn, Holger Ketz, > > > Jan-Hendrik > > > >> > >> > > > Köstergarten, Jan Kunze, Michael Nebel, Guillaume > Sauzedde, > > > >> > Mustafa > > > >> > >> > > Sener. > > > >> > >> > > > > > > >> > >> > > > Wir arbeiten ausschließlich auf Grundlage der Allgemeinen > > > >> > Deutschen > > > >> > >> > > > Spediteurbedingungen 2017 (ADSp 2017). Hinweis: Die ADSp > > 2017 > > > >> > >> weichen > > > >> > >> > in > > > >> > >> > > > Ziffer 23 hinsichtlich des Haftungshöchstbetrages für > > > >> Güterschäden > > > >> > >> (§ > > > >> > >> > 431 > > > >> > >> > > > HGB) vom Gesetz ab, indem sie die Haftung bei > multimodalen > > > >> > >> Transporten > > > >> > >> > > > unter Einschluss einer Seebeförderung und bei unbekanntem > > > >> > Schadenort > > > >> > >> > auf > > > >> > >> > > 2 > > > >> > >> > > > SZR/kg und im Übrigen die Regelhaftung von 8,33 SZR/kg > > > >> zusätzlich > > > >> > >> auf > > > >> > >> > > 1,25 > > > >> > >> > > > Millionen Euro je Schadenfall sowie 2,5 Millionen Euro je > > > >> > >> > > Schadenereignis, > > > >> > >> > > > mindestens aber 2 SZR/kg, beschränken. Die ADSp sind auf > > > >> unserer > > > >> > >> > Webseite > > > >> > >> > > > als Download erhältlich. Auf Anfrage senden wir Ihnen > diese > > > >> auch > > > >> > >> gerne > > > >> > >> > > zu. > > > >> > >> > > > > > > >> > >> > > > > > >> > >> > > > > >> > >> > -- > > > >> > >> > <http://www.foreksmobile.com/redirect.html> > > > >> > >> > > > > >> > >> > P > > > >> > >> > > > > >> > >> > Bu mesaji yazdirmadan önce çevreye olan sorumlulugumuzu bir > kez > > > >> daha > > > >> > >> > düsünelim. > > > >> > >> > Please consider the environment before printing this e-mail. > > > >> > >> > > > > >> > >> > Bu elektronik posta ve onunla iletilen bütün dosyalar sadece > > > >> > göndericisi > > > >> > >> > tarafından alması amaçlanan yetkili gerçek ya da tüzel > kişinin > > > >> > kullanımı > > > >> > >> > içindir. Eğer söz konusu yetkili alıcı değilseniz bu > elektronik > > > >> > postanın > > > >> > >> > içeriğini açıklamanız, kopyalamanız, yönlendirmeniz ve > > > kullanmanız > > > >> > >> > kesinlikle yasaktır ve bu elektronik postayı derhal silmeniz > > > >> > >> gerekmektedir. > > > >> > >> > FOREKS bu mesajın içerdiği bilgilerin doğruluğu veya eksiksiz > > > >> olduğu > > > >> > >> > konusunda herhangi bir garanti vermemektedir. Bu nedenle bu > > > >> bilgilerin > > > >> > >> ne > > > >> > >> > şekilde olursa olsun içeriğinden, iletilmesinden, > alınmasından > > ve > > > >> > >> > saklanmasından sorumlu değildir. Bu mesajdaki görüşler > yalnızca > > > >> > gönderen > > > >> > >> > kişiye aittir ve FOREKS'in görüşlerini yansıtmayabilir. > > > >> > >> > Bu e-posta bilinen bütün bilgisayar virüslerine karşı > > > taranmıştır. > > > >> > >> > * > > > >> > >> > This e-mail and any files transmitted with it are > confidential > > > and > > > >> > >> intended > > > >> > >> > solely for the use of the individual or entity to whom they > are > > > >> > >> addressed. > > > >> > >> > If you are not the intended recipient you are hereby notified > > > that > > > >> any > > > >> > >> > dissemination, forwarding, copying or use of any of the > > > >> information is > > > >> > >> > strictly prohibited, and the e-mail should immediately be > > > deleted. > > > >> > >> FOREKS > > > >> > >> > makes > > > >> > >> > no warranty as to the accuracy or completeness of any > > information > > > >> > >> contained > > > >> > >> > in this message and hereby excludes any liability of any kind > > for > > > >> the > > > >> > >> > information contained therein or for the information > > > transmission, > > > >> > >> > reception, storage or use of such in any way whatsoever. The > > > >> opinions > > > >> > >> > expressed in this message belong to sender alone and may not > > > >> > necessarily > > > >> > >> > reflect the opinions of FOREKS. > > > >> > >> > This e-mail has been scanned for all known computer viruses. > > > >> > >> > > > > >> > >> > > > >> > > > > > >> > > > > > >> > > > > >> > -- > > > >> > <http://www.foreksmobile.com/redirect.html> > > > >> > > > > >> > P > > > >> > > > > >> > Bu mesaji yazdirmadan önce çevreye olan sorumlulugumuzu bir kez > daha > > > >> > düsünelim. > > > >> > Please consider the environment before printing this e-mail. > > > >> > > > > >> > Bu elektronik posta ve onunla iletilen bütün dosyalar sadece > > > göndericisi > > > >> > tarafından alması amaçlanan yetkili gerçek ya da tüzel kişinin > > > kullanımı > > > >> > içindir. Eğer söz konusu yetkili alıcı değilseniz bu elektronik > > > postanın > > > >> > içeriğini açıklamanız, kopyalamanız, yönlendirmeniz ve kullanmanız > > > >> > kesinlikle yasaktır ve bu elektronik postayı derhal silmeniz > > > >> gerekmektedir. > > > >> > FOREKS bu mesajın içerdiği bilgilerin doğruluğu veya eksiksiz > olduğu > > > >> > konusunda herhangi bir garanti vermemektedir. Bu nedenle bu > > bilgilerin > > > >> ne > > > >> > şekilde olursa olsun içeriğinden, iletilmesinden, alınmasından ve > > > >> > saklanmasından sorumlu değildir. Bu mesajdaki görüşler yalnızca > > > gönderen > > > >> > kişiye aittir ve FOREKS'in görüşlerini yansıtmayabilir. > > > >> > Bu e-posta bilinen bütün bilgisayar virüslerine karşı taranmıştır. > > > >> > * > > > >> > This e-mail and any files transmitted with it are confidential and > > > >> intended > > > >> > solely for the use of the individual or entity to whom they are > > > >> addressed. > > > >> > If you are not the intended recipient you are hereby notified that > > any > > > >> > dissemination, forwarding, copying or use of any of the > information > > is > > > >> > strictly prohibited, and the e-mail should immediately be deleted. > > > >> FOREKS > > > >> > makes > > > >> > no warranty as to the accuracy or completeness of any information > > > >> contained > > > >> > in this message and hereby excludes any liability of any kind for > > the > > > >> > information contained therein or for the information transmission, > > > >> > reception, storage or use of such in any way whatsoever. The > > opinions > > > >> > expressed in this message belong to sender alone and may not > > > necessarily > > > >> > reflect the opinions of FOREKS. > > > >> > This e-mail has been scanned for all known computer viruses. > > > >> > > > > >> > > > > > > > > > > > > > > -- > > > <http://www.foreksmobile.com/redirect.html> > > > > > > P > > > > > > Bu mesaji yazdirmadan önce çevreye olan sorumlulugumuzu bir kez daha > > > düsünelim. > > > Please consider the environment before printing this e-mail. > > > > > > Bu elektronik posta ve onunla iletilen bütün dosyalar sadece > göndericisi > > > tarafından alması amaçlanan yetkili gerçek ya da tüzel kişinin > kullanımı > > > içindir. Eğer söz konusu yetkili alıcı değilseniz bu elektronik > postanın > > > içeriğini açıklamanız, kopyalamanız, yönlendirmeniz ve kullanmanız > > > kesinlikle yasaktır ve bu elektronik postayı derhal silmeniz > > gerekmektedir. > > > FOREKS bu mesajın içerdiği bilgilerin doğruluğu veya eksiksiz olduğu > > > konusunda herhangi bir garanti vermemektedir. Bu nedenle bu bilgilerin > ne > > > şekilde olursa olsun içeriğinden, iletilmesinden, alınmasından ve > > > saklanmasından sorumlu değildir. Bu mesajdaki görüşler yalnızca > gönderen > > > kişiye aittir ve FOREKS'in görüşlerini yansıtmayabilir. > > > Bu e-posta bilinen bütün bilgisayar virüslerine karşı taranmıştır. > > > * > > > This e-mail and any files transmitted with it are confidential and > > intended > > > solely for the use of the individual or entity to whom they are > > addressed. > > > If you are not the intended recipient you are hereby notified that any > > > dissemination, forwarding, copying or use of any of the information is > > > strictly prohibited, and the e-mail should immediately be deleted. > FOREKS > > > makes > > > no warranty as to the accuracy or completeness of any information > > contained > > > in this message and hereby excludes any liability of any kind for the > > > information contained therein or for the information transmission, > > > reception, storage or use of such in any way whatsoever. The opinions > > > expressed in this message belong to sender alone and may not > necessarily > > > reflect the opinions of FOREKS. > > > This e-mail has been scanned for all known computer viruses. > > > > > > > -- > <http://www.foreksmobile.com/redirect.html> > > P > > Bu mesaji yazdirmadan önce çevreye olan sorumlulugumuzu bir kez daha > düsünelim. > Please consider the environment before printing this e-mail. > > Bu elektronik posta ve onunla iletilen bütün dosyalar sadece göndericisi > tarafından alması amaçlanan yetkili gerçek ya da tüzel kişinin kullanımı > içindir. Eğer söz konusu yetkili alıcı değilseniz bu elektronik postanın > içeriğini açıklamanız, kopyalamanız, yönlendirmeniz ve kullanmanız > kesinlikle yasaktır ve bu elektronik postayı derhal silmeniz gerekmektedir. > FOREKS bu mesajın içerdiği bilgilerin doğruluğu veya eksiksiz olduğu > konusunda herhangi bir garanti vermemektedir. Bu nedenle bu bilgilerin ne > şekilde olursa olsun içeriğinden, iletilmesinden, alınmasından ve > saklanmasından sorumlu değildir. Bu mesajdaki görüşler yalnızca gönderen > kişiye aittir ve FOREKS'in görüşlerini yansıtmayabilir. > Bu e-posta bilinen bütün bilgisayar virüslerine karşı taranmıştır. > * > This e-mail and any files transmitted with it are confidential and intended > solely for the use of the individual or entity to whom they are addressed. > If you are not the intended recipient you are hereby notified that any > dissemination, forwarding, copying or use of any of the information is > strictly prohibited, and the e-mail should immediately be deleted. FOREKS > makes > no warranty as to the accuracy or completeness of any information contained > in this message and hereby excludes any liability of any kind for the > information contained therein or for the information transmission, > reception, storage or use of such in any way whatsoever. The opinions > expressed in this message belong to sender alone and may not necessarily > reflect the opinions of FOREKS. > This e-mail has been scanned for all known computer viruses. >
