Project

General

Profile

feature request #5209

Improve server availability check

Added by Andreas Müller over 3 years ago. Updated 7 months ago.

Status:
New
Priority:
Priority14
Category:
taxeditor
Target version:
Start date:
09/08/2015
Due date:
% Done:

0%

Severity:
normal

Description

Currently if the service is not available (because server restarts or anything else you get the unexpected error messages shown below

We may want to wrap these errors in a nice looking message which is more informative for the user.

Further evaluate server availability during exception evaluation by using services from #7725

We may also think about having a status line icon/label which permanently (every 2-3 seconds) checks the availability of the server (ping) and shows the status (in red if disconnected) so the user knows immediately about it.

These services could be used for the check:

But it might be simpler to just simply ping the server. Maybe HTTP HEAD request is sufficient.

We may also want to have 2 services, one for checking availability of the server (without DB check) and one checking if data can be read from the DB.

see #7725 for the server ping ticket

login : admin
editor version : 3.8.0.201509071706
server :  / edit-test
schema version : 
os : Windows Server 2012 6.2 amd64
java : 1.7.0_75
org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://test.e-taxonomy.eu:80/cdmserver/edaphobase_test/remoting/group.service]; nested exception is org.apache.commons.httpclient.HttpException: Did not receive successful HTTP response: status code = 503, status message = [Service Unavailable]
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:212)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:145)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at com.sun.proxy.$Proxy32.list(Unknown Source)
    at eu.etaxonomy.taxeditor.ui.dialog.selection.GroupSelectionDialog.initModel(GroupSelectionDialog.java:60)
    at eu.etaxonomy.taxeditor.ui.dialog.selection.AbstractFilteredCdmResourceSelectionDialog.<init>(AbstractFilteredCdmResourceSelectionDialog.java:95)
    at eu.etaxonomy.taxeditor.ui.dialog.selection.GroupSelectionDialog.<init>(GroupSelectionDialog.java:52)
    at eu.etaxonomy.taxeditor.ui.dialog.selection.GroupSelectionDialog.select(GroupSelectionDialog.java:36)
    at eu.etaxonomy.taxeditor.ui.section.user.GroupsByUserDetailSection.createNewElement(GroupsByUserDetailSection.java:48)
    at eu.etaxonomy.taxeditor.ui.section.user.GroupsByUserDetailSection.createNewElement(GroupsByUserDetailSection.java:1)
    at eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection$2.run(AbstractEntityCollectionSection.java:91)
    at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
    at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
    at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
    at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Caused by: org.apache.commons.httpclient.HttpException: Did not receive successful HTTP response: status code = 503, status message = [Service Unavailable]
    at org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.validateResponse(CommonsHttpInvokerRequestExecutor.java:223)
    at org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.doExecuteRequest(CommonsHttpInvokerRequestExecutor.java:141)
    at eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor.doExecuteRequest(CdmServiceRequestExecutor.java:51)
    at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:136)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:192)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:174)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:142)
    ... 38 more

or

login : admin
editor version : 3.8.0.201509071706
server :  / edit-test
schema version : 
os : Windows Server 2012 6.2 amd64
java : 1.7.0_75
org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://test.e-taxonomy.eu:80/cdmserver/edaphobase_test/remoting/taxonnode.service]; nested exception is org.apache.commons.httpclient.HttpException: Did not receive successful HTTP response: status code = 404, status message = [Not Found]
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:212)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:145)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at com.sun.proxy.$Proxy29.load(Unknown Source)
    at eu.etaxonomy.taxeditor.editor.TaxonEditorInput.initForTaxonNode(TaxonEditorInput.java:99)
    at eu.etaxonomy.taxeditor.editor.TaxonEditorInput.<init>(TaxonEditorInput.java:79)
    at eu.etaxonomy.taxeditor.editor.TaxonEditorInput.NewInstance(TaxonEditorInput.java:205)
    at eu.etaxonomy.taxeditor.editor.EditorUtil.openTaxonNode(EditorUtil.java:151)
    at eu.etaxonomy.taxeditor.navigation.NavigationUtil.openEditor(NavigationUtil.java:88)
    at eu.etaxonomy.taxeditor.navigation.NavigationUtil.openEditor(NavigationUtil.java:122)
    at eu.etaxonomy.taxeditor.navigation.navigator.handler.EditHandler$1$1.run(EditHandler.java:74)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4140)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3757)
    at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2701)
    at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2665)
    at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2499)
    at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:679)
    at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
    at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:668)
    at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
    at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Caused by: org.apache.commons.httpclient.HttpException: Did not receive successful HTTP response: status code = 404, status message = [Not Found]
    at org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.validateResponse(CommonsHttpInvokerRequestExecutor.java:223)
    at org.springframework.remoting.httpinvoker.CommonsHttpInvokerRequestExecutor.doExecuteRequest(CommonsHttpInvokerRequestExecutor.java:141)
    at eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor.doExecuteRequest(CdmServiceRequestExecutor.java:51)
    at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:136)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:192)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:174)
    at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:142)
    ... 34 more

access-failure.png View (19.2 KB) Cherian Mathew, 11/26/2015 05:42 PM

connection-failure.png View (19.1 KB) Cherian Mathew, 11/26/2015 05:42 PM


Related issues

Related to Edit - feature request #6737: Make error message available in "Copy Error" New 06/16/2017
Duplicated by Edit - bug #6355: Improve message if server is down Duplicate 01/20/2017
Duplicates Edit - task #6736: Handle server not available user friendly Duplicate 06/16/2017
Copied to Edit - feature request #7725: Implement server availability check New 09/06/2018

History

#1 Updated by Andreas Müller over 3 years ago

  • Priority changed from New to Highest

#2 Updated by Andreas Müller over 3 years ago

  • Priority changed from Highest to Priority14

#3 Updated by Cherian Mathew over 3 years ago

  • Status changed from New to In Progress

The two main exceptions to handle are

  • RemoteConnectFailureException : for when the connection to the remote server is broken

  • RemoteAccessException : for when the connection is up but there are other (http level) access problems.

r26670 adds a special case for these exception to make them more user-friendly.

RemoteConnectFailureException now results in,

RemoteAccessException now results in,

#4 Updated by Cherian Mathew over 3 years ago

  • Status changed from In Progress to Resolved
  • Assignee changed from c.mathew - to Andreas Müller

#5 Updated by Patrick Plitzner 7 months ago

  • Duplicated by bug #6355: Improve message if server is down added

#6 Updated by Patrick Plitzner 7 months ago

  • Duplicates task #6736: Handle server not available user friendly added

#7 Updated by Patrick Plitzner 7 months ago

#8 Updated by Patrick Plitzner 7 months ago

  • Status changed from Resolved to Duplicate

#9 Updated by Patrick Plitzner 7 months ago

  • Description updated (diff)
  • Status changed from Duplicate to New
  • Assignee changed from Andreas Müller to Patrick Plitzner
  • Target version changed from Remoting 5.0 to Unassigned CDM tickets

Copied from #6355:

Andreas M.:
"wie schon öfters erwähnt, sollten wir hier ja versuchen, eine nutzerfreundlichere Fehlermeldung anzuzeigen.

Stimmt mein Gefühl, dass das schwierig ist, weil es in allen möglichen Situationen auftreten kann?

Aber ist es nicht möglich, diesen Fehler z.B. in der MessageUtils oder wie die heißt als Querschnittsproblem abzufangen und eine passende Fehlermeldung anzuzeigen.

Ansonsten werden wir uns hier in Zukunft wohl sehr regelmäßig mit diesen Fehlermeldungen der User herumschlagen müssen / und die User werden regelmäßig unzufrieden sein, dass was nicht funktioniert, obwohl lediglich die Verbindung weg ist.

Als Advanced Feature könnten wir auch noch einen Verbindungscheck einbauen ins UI, wenn dieser Fehler angezeigt wird. Damit kann der User selber testen, ob ein generelles Verbindungsproblem vorliegt. Und einiges andere wäre möglich, um den User zu unterstützen (z.B. Link auf die Managementkonsole, wo er sehen kann, dass der Server neustartet, wann er zuletzt neugestartet wurde, den Testbutton klicken kann etc.)."

#10 Updated by Patrick Plitzner 7 months ago

Copied from #6355:

In the above case the interruption took place during lazy initialization:

login : w.berendsohn
editor version : 4.7.0
server : api.cybertaxonomy.org (cybertaxonomy.org) / caryo_amaranthaceae
schema version : 4.1.0.0.201607300000
os : Windows 7 6.1 amd64
java : 1.8.0_121
org.eclipse.swt.SWTException: Failed to execute runnable (eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException: org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://api.cybertaxonomy.org:80/caryo_amaranthaceae/remoting/common.service]; nested exception is org.apache.http.NoHttpResponseException: api.cybertaxonomy.org:80 failed to respond)
                at org.eclipse.swt.SWT.error(SWT.java:4533)
                at org.eclipse.swt.SWT.error(SWT.java:4448)
                at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
                at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211)
                at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3827)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
                at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
                at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
                at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
                at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)
                at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
                at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
                at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
                at eu.etaxonomy.taxeditor.Application.start(Application.java:24)
                at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
                at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
                at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
                at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
                at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
                at java.lang.reflect.Method.invoke(Unknown Source)
                at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
                at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
                at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
Caused by: eu.etaxonomy.taxeditor.remoting.CdmEagerLoadingException: org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://api.cybertaxonomy.org:80/caryo_amaranthaceae/remoting/common.service]; nested exception is org.apache.http.NoHttpResponseException: api.cybertaxonomy.org:80 failed to respond
                at org.hibernate.collection.internal.AbstractPersistentCollection.remoteInitialize(AbstractPersistentCollection.java:1358)
                at org.hibernate.collection.internal.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:627)
                at org.hibernate.collection.internal.AbstractPersistentCollection.read(AbstractPersistentCollection.java:167)
                at org.hibernate.collection.internal.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:184)
                at org.hibernate.collection.internal.PersistentSet.size(PersistentSet.java:143)
                at eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection.checkForMultipleNameUsages(NonViralNameDetailSection.java:121)
                at eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection.createToolbar(NonViralNameDetailSection.java:92)
                at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection.setSectionTitle(AbstractCdmDetailSection.java:158)
                at eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection.setEntity(AbstractCdmDetailSection.java:127)
                at eu.etaxonomy.taxeditor.ui.section.name.NonViralNameDetailSection.setTaxonBase(NonViralNameDetailSection.java:135)
                at eu.etaxonomy.taxeditor.view.detail.CdmSectionPart.setFormInput(CdmSectionPart.java:82)
                at org.eclipse.ui.forms.ManagedForm.setInput(ManagedForm.java:210)
                at eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer.refresh(AbstractCdmDataViewer.java:123)
                at eu.etaxonomy.taxeditor.view.AbstractCdmDataViewer.setInput(AbstractCdmDataViewer.java:109)
                at eu.etaxonomy.taxeditor.view.detail.DetailsViewer.setInput(DetailsViewer.java:161)
                at eu.etaxonomy.taxeditor.view.AbstractCdmViewPart.showViewer(AbstractCdmViewPart.java:118)
                at eu.etaxonomy.taxeditor.view.detail.DetailsViewPart.selectionChanged_internal(DetailsViewPart.java:95)
                at eu.etaxonomy.taxeditor.view.AbstractCdmEditorViewPart$DelaySelection.run(AbstractCdmEditorViewPart.java:52)
                at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
                at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
                ... 23 more
Caused by: org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [http://api.cybertaxonomy.org:80/caryo_amaranthaceae/remoting/common.service]; nested exception is org.apache.http.NoHttpResponseException: api.cybertaxonomy.org:80 failed to respond
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.convertHttpInvokerAccessException(HttpInvokerClientInterceptor.java:216)
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:147)
                at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
                at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
                at com.sun.proxy.$Proxy53.initializeCollection(Unknown Source)
                at eu.etaxonomy.taxeditor.service.CachedCommonServiceImpl.initializeCollection(CachedCommonServiceImpl.java:69)
                at org.hibernate.collection.internal.AbstractPersistentCollection.remoteInitialize(AbstractPersistentCollection.java:1340)
                ... 42 more
Caused by: org.apache.http.NoHttpResponseException: api.cybertaxonomy.org:80 failed to respond
                at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:143)
                at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
                at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:261)
                at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:165)
                at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
                at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:272)
                at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:124)
                at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
                at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
                at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
                at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
                at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
                at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
                at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
                at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
                at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.executeHttpPost(HttpComponentsHttpInvokerRequestExecutor.java:338)
                at org.springframework.remoting.httpinvoker.HttpComponentsHttpInvokerRequestExecutor.doExecuteRequest(HttpComponentsHttpInvokerRequestExecutor.java:229)
                at eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor.doExecuteRequest(CdmServiceRequestExecutor.java:61)
                at org.springframework.remoting.httpinvoker.AbstractHttpInvokerRequestExecutor.executeRequest(AbstractHttpInvokerRequestExecutor.java:138)
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:194)
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.executeRequest(HttpInvokerClientInterceptor.java:176)
                at org.springframework.remoting.httpinvoker.HttpInvokerClientInterceptor.invoke(HttpInvokerClientInterceptor.java:144)
                ... 47 more

#11 Updated by Patrick Plitzner 7 months ago

  • Tracker changed from bug to feature request
  • Subject changed from Handle service not available nicely to Implement/improve server availability check
  • Description updated (diff)

#12 Updated by Patrick Plitzner 7 months ago

  • Private changed from Yes to No

#13 Updated by Patrick Plitzner 7 months ago

  • Description updated (diff)

#14 Updated by Andreas Müller 7 months ago

Shouldn't we split this ticket. This one stays a "how to handle the exception" best ticket.

And then we need a separated (but related) ticket for pinging. The later will be primarily a cdmserver ticket. Once this is ready we need another one for implementing visualization of the ping results in TaxEditor (and maybe also for adding the ping result to the above exception handling, e.g. by running a ping before showing the httpException dialog).

#15 Updated by Andreas Müller 7 months ago

  • Description updated (diff)

#16 Updated by Patrick Plitzner 7 months ago

Andreas Müller wrote:

Shouldn't we split this ticket. This one stays a "how to handle the exception" best ticket.

And then we need a separated (but related) ticket for pinging. The later will be primarily a cdmserver ticket. Once this is ready we need another one for implementing visualization of the ping results in TaxEditor (and maybe also for adding the ping result to the above exception handling, e.g. by running a ping before showing the httpException dialog).

We have to ping the cdmserver from the taxeditor. So it cannot be cdmserver ticket, right? The pinging thread has to be run on the taxeditor side.

Anyway, I created a new ticket for the pinging -> #7725

#17 Updated by Patrick Plitzner 7 months ago

#18 Updated by Patrick Plitzner 7 months ago

  • Subject changed from Implement/improve server availability check to Improve server availability check

#19 Updated by Patrick Plitzner 7 months ago

  • Description updated (diff)

#20 Updated by Andreas Müller 7 months ago

Patrick Plitzner wrote:

Andreas Müller wrote:

Shouldn't we split this ticket. This one stays a "how to handle the exception" best ticket.

And then we need a separated (but related) ticket for pinging. The later will be primarily a cdmserver ticket. Once this is ready we need another one for implementing visualization of the ping results in TaxEditor (and maybe also for adding the ping result to the above exception handling, e.g. by running a ping before showing the httpException dialog).

We have to ping the cdmserver from the taxeditor. So it cannot be cdmserver ticket, right? The pinging thread has to be run on the taxeditor side.

Anyway, I created a new ticket for the pinging -> #7725

No, in first case it needs to be a cdm server ticket as the required service is not yet in place as mentioned above. The 2 existing service are not sufficient.
As I did right we then need another ticket which uses this ping service from within the TaxEditor. Implementing a separate ping thread is probably one part of this task.
Can you please adapt the new ticket accordingly (split in 2, one for CDM server, one for TaxEditor)?

#21 Updated by Andreas Müller 7 months ago

  • Description updated (diff)

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 40 MB)