Откат JMS

Я столкнулся с той же проблемой, занимаясь исследованиями глубины изображения с камеры и радиолокационных данных. Так как vispy поддерживает 2d только для осей, вы можете вращать ось Z после создания. здесь, немного измененная версия вашего кода:

import sys
import numpy as np
from vispy import app, scene
from vispy.util.filter import gaussian_filter

canvas = scene.SceneCanvas(keys='interactive', bgcolor='w')
view = canvas.central_widget.add_view()
view.camera = scene.TurntableCamera(up='z', fov=60)

z = np.random.normal(size=(250, 250), scale=200)
z[100, 100] += 50000
z = gaussian_filter(z, (10, 10))

p1 = scene.visuals.SurfacePlot(z=z, color=(0.3, 0.3, 1, 1))
p1.transform = scene.transforms.MatrixTransform()
p1.transform.scale([1/249., 1/249., 1/249.])
view.add(p1)

xax = scene.Axis(pos=[[0, 0], [1, 0]], tick_direction=(0, -1), axis_color='r', tick_color='r', text_color='r', font_size=16, parent=view.scene)
yax = scene.Axis(pos=[[0, 0], [0, 1]], tick_direction=(-1, 0), axis_color='g', tick_color='g', text_color='g', font_size=16, parent=view.scene)

zax = scene.Axis(pos=[[0, 0], [-1, 0]], tick_direction=(0, -1), axis_color='b', tick_color='b', text_color='b', font_size=16, parent=view.scene)
zax.transform = scene.transforms.MatrixTransform()  # its acutally an inverted xaxis
zax.transform.rotate(90, (0, 1, 0))  # rotate cw around yaxis
zax.transform.rotate(-45, (0, 0, 1))  # tick direction towards (-1,-1)

if __name__ == '__main__':
    canvas.show()
    if sys.flags.interactive == 0:
        app.run()

С уважением

8
задан bmw0128 5 February 2009 в 18:06
поделиться

2 ответа

Можно использовать JMS, и JTA (Транзакция Java API) вместе - видят здесь. При выполнении этого отправка сообщения JMS или потребление полученного сообщения на самом деле происходят атомарно как часть фиксации транзакции.

Что это означает? Если транзакция перестала работать или откатывается, "отправленное" сообщение не выходит, и любые "полученные" сообщения действительно не используются. Все обработанные для Вас Вашим JMS и поставщиком JTA.

Необходимо использовать реализацию JMS, которая поддерживает JTA. Кажется, что Вы уже используете транзакции, таким образом, это мог бы быть вопрос реализации некоторой конфигурации, чтобы заставить его произойти (махающий рукой энергично...).

У меня был опыт с помощью этого (WebLogic Integration BEA WebLogic 7 w/BEA). Работавший, как рекламируется - "внешний мир" не видел влияния материала JMS, который я попробовал, если транзакция не фиксировала успешно.

9
ответ дан 5 December 2019 в 08:54
поделиться

То, что Вы описали, является транзакцией XA. Это позволяет транзакции определять объем через несколько слоев т.е. поставщика JMS, DB или любой другой EIS. Большинство контейнеров может быть настроено для использования и не XA и ни один транзакции XA, так проверьте контейнерные настройки!

Например, при использовании JMS с транзакциями XA, следующее возможно.

Start Transaction
      |
   DB Insert
      |
   Send JMS Msg
      |
   More DB Inserts
      | 
   Commit Transaction  <- Only at this point will the database records be inserted and the JMS message sent.

XA Tranactions только доступны в полном Java контейнеры EE, таким образом, транзакции XA не доступны в Tomcat.

Удачи!

Karl

10
ответ дан 5 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: