| time |
nick |
message |
00:00 |
<alexandre> |
bem. depois de aprofundada analise, a solucao passa por relan?ar a excepcao nas accoes de desinstalacao e loggar nas de instalacao |
00:00 |
<alexandre> |
por favor votem. |
00:00 |
<alexandre> |
:D |
00:01 |
<martins> |
isso significa o mesmo comportamento de antes na instalação e o novo na desinstalação, right? |
00:01 |
<martins> |
ta testado? |
00:01 |
<alexandre> |
sim |
00:01 |
<alexandre> |
nao |
00:01 |
<alexandre> |
respectivamente :) |
00:02 |
<martins> |
tem de ser aprovado pelo google talk bot, a presença e asterisk ra |
00:02 |
<martins> |
chegaste a perceber qual era o prob ontem? |
00:03 |
<alexandre> |
mais ou menos |
00:03 |
<martins> |
lançavas a timer task e o thread do deployer continuava logo ele quase q era certo q dava cabo do ucl antes de tu o guardares |
00:03 |
<alexandre> |
a thread do deployer nakela altura ja tinha sumido? |
00:04 |
<martins> |
ya pq ao lançares a timer task ele n para |
00:04 |
<alexandre> |
pois, exacto |
00:04 |
<alexandre> |
e ele fazia o unreg antes de ser guardado pelo outro |
00:05 |
<alexandre> |
por isso passaste a cena de guardar e esconder a ucl p onde esta agora. okieee |
00:06 |
<martins> |
s, antes de lançares a timertask |
00:07 |
<alexandre> |
lol.. pois, n eh bem antes... mas assim tem mais piada, eh mais arriscado lol |
00:08 |
<alexandre> |
timer.scheduleAtFixedRate(new UndeploymentTask(di), 0, |
00:08 |
<alexandre> |
getWaitTimeBetweenOperations()); |
00:08 |
<alexandre> |
.// We get here when we have components depending on this... |
00:08 |
<alexandre> |
try { |
00:08 |
<alexandre> |
.// Let's store the 'old' UCL. |
00:08 |
<alexandre> |
dm.addReplacedUCL(du, di.ucl); |
00:09 |
<martins> |
ah pois, é pro caso do set do timer falhar |
00:09 |
<martins> |
se quiseres podes mudar pra antes, n va alguem por um wait time de 5ms |
00:10 |
<alexandre> |
lol... repara no "0" :D |
00:10 |
<alexandre> |
isso eh p qd eh p come?ar o timer ;) o wait time eh pras restantes iteracoes lol |
00:10 |
<martins> |
hmm, o 0 é pra tentar logo? |
00:11 |
<alexandre> |
y |
00:11 |
<martins> |
lol, nem vi isso |
00:11 |
<martins> |
muda a ordem disso entao |
00:11 |
<martins> |
n faz mal a inguem guardar o UCL |
00:12 |
<alexandre> |
pois, mesmo q seja deployed uma nova versao, eh sempre utilizada a versao dos jars nessa versao, certo? |
00:13 |
<martins> |
axo q n é bem, ele primeiro procura a classe no seu UCL, depois vai ao pai q é o repositorio partilhado |
00:15 |
<alexandre> |
exacto, mas procura sempre primeiro no seu... e ai usa sempre a versao mais recente |
00:15 |
<martins> |
nesse partilhado é sempre a mais recente, embora só passe pra mais recente quando ja n ha objectos com a anterior |
00:16 |
<martins> |
é uma confusao, no outro dia encontrei uma pagina a explicar isso no wiki da jboss |
00:16 |
<martins> |
se quiseres podes por cada componente deployed com UCL privado, q penso q será o q vamos ter de fazer no 2.x |
00:16 |
<alexandre> |
epa.. o Paulo Gonzo canta bem :P rtp2 |
00:17 |
<martins> |
e carregar la as classes do slee e dependencias |
00:19 |
<alexandre> |
pois, eh melhor.. fica mais isolado |
00:19 |
<alexandre> |
porra pro deployer p?! :P |
00:20 |
<alexandre> |
ah macambuzio... fizeste aki alteracoes perigosas |
00:20 |
<alexandre> |
if(!waitingForUninstallDUs.contains( du )) |
00:20 |
<alexandre> |
{ |
00:20 |
<alexandre> |
.// Add it to the waiting list. |
00:20 |
<alexandre> |
waitingForUninstallDUs.add( du ); |
00:20 |
<alexandre> |
throw new DeploymentException("Unable to UNINSTALL " + du.getDeploymentInfoShortName() + " right now. Waiting for dependents to be removed."); |
00:20 |
<alexandre> |
} |
00:21 |
<alexandre> |
o if eh so p ele nao imprimir a mensagem a cada iteracao |
00:21 |
<alexandre> |
mas a excepcao tem de ser lancada senao eh considerado completo o undeployment, pela task |
00:23 |
<martins> |
:) |
00:26 |
<alexandre> |
agr estou a pensar |
00:26 |
<alexandre> |
pq eh q o deactivateService retorna logo e o activateRaEntity espera.... o outro tb podia esperar! |
00:27 |
<martins> |
n sei de q estas a falar |
00:27 |
<alexandre> |
exemplo do RA de asterisk |
00:28 |
<martins> |
tas a comparar um deactivate e um activate |
00:28 |
<alexandre> |
tens o activateentity e o bindlinkname... a invocacao do activateentity prende ate q haja resultados |
00:28 |
<alexandre> |
e so dp entao eh feito o bindlinkname |
00:29 |
<alexandre> |
pq eh q o deactivate do servi?o tb n prende.. :p |
00:29 |
<martins> |
pra n prenderes o thread do timer? |
00:29 |
<martins> |
n inventes, resolve so o prob q descobriste :p |
00:29 |
<alexandre> |
pra nao acontecer nada disto lol |
00:29 |
<martins> |
n tarda começa a presença a falhar |
00:29 |
<alexandre> |
lol, just wondering :) |
00:30 |
<alexandre> |
oh, mas isso ja se sabe... aquilo tem um random p lan?ar excepcoes... assim garantes sempre o support :D |
00:34 |
<alexandre> |
loookin' gooooood |
00:38 |
<alexandre> |
martins: patch no teu mail |
00:38 |
<alexandre> |
testa la c o sip-presence |
00:47 |
<martins> |
ja falhou no shutdown |
00:49 |
<alexandre> |
como eh possivel ... |
00:49 |
<alexandre> |
classloading? |
00:49 |
<martins> |
tiraste os |
00:49 |
<martins> |
n tiraste |
00:49 |
<martins> |
ya class laoding |
00:50 |
<alexandre> |
ai o cara...pau! |
00:51 |
<martins> |
vou por a guardar sempre o ucl |
00:52 |
<martins> |
eu axo q ontem n falhava com o shutdown mas enfim |
00:53 |
<martins> |
assim ja n falha |
00:54 |
<martins> |
vamos ao undeploy |
00:54 |
<alexandre> |
yah |
00:54 |
<alexandre> |
faz sentido :p akele eh o unico local onde eh guardado o UCL |
00:55 |
<martins> |
undeploy funcionou, vamos ao gtalk bot |
00:59 |
<alexandre> |
dp instala um dos ras .. asterisk, jcc ou smpp |
00:59 |
<martins> |
ta bom tb |
00:59 |
<martins> |
e de seguida uninstall? |
01:00 |
<alexandre> |
nao.. o prob eh so no install |
01:00 |
<alexandre> |
qd ele tenta ligar ao server |
01:00 |
<alexandre> |
deve dar excepcao no activate mas mm assim de seguida criar o link |
01:00 |
<martins> |
ta dificil de dar timeout |
01:01 |
<alexandre> |
at org.mobicents.slee.resource.asterisk.AsteriskResourceAdaptor.entityActivated(AsteriskResourceAdaptor.java:126) |
01:01 |
<alexandre> |
... 35 more |
01:01 |
<alexandre> |
01:34:25,305 INFO [ResourceManagementMBeanImpl] Created Link between RA Entity AsteriskRA and Name AsteriskRA |
01:01 |
<martins> |
ok, funcionou |
01:01 |
<alexandre> |
demora 1 bocado |
01:01 |
<martins> |
o undeploy tb |
01:01 |
<martins> |
ta bom, siga |
01:01 |
<martins> |
vou fazer commit |
01:01 |
<martins> |
e começar a maven release |
01:02 |
<alexandre> |
yeah |
01:02 |
<martins> |
podes ir |
01:11 |
<alexandre> |
:D |
01:11 |
<alexandre> |
thanks |
01:11 |
<alexandre> |
amnha d manha testo o CR2 |
01:24 |
<alexandre> |
+ //if (logger.isDebugEnabled()) { |
01:24 |
<alexandre> |
+ logger.info("replacedUCLs size is "+replacedUCLs.size()+" after removing DU "+du.getDeploymentInfoShortName()); |
01:24 |
<alexandre> |
+ //} |
01:24 |
<alexandre> |
era suposto deixares a info? :P |
01:24 |
<alexandre> |
martins |
01:24 |
<martins> |
oops |
01:24 |
<martins> |
ya |
13:14 |
<alexandre> |
yo barreiro |
13:15 |
<alexandre> |
chegou a ser feita a CR2? |
13:16 |
<barreiro> |
que eu saiba n |
13:17 |
<barreiro> |
... tb estava à espera que houvesse um anuncio qq, para eu testar. |
13:18 |
<alexandre> |
pois |
13:34 |
<alexandre> |
e vpn, ja alguem te ligou? |
13:38 |
<barreiro> |
nopes :( ... e a ti ??? |
13:38 |
<alexandre> |
tb nao |
13:38 |
<alexandre> |
helpdesk da tanga |
13:38 |
<barreiro> |
damn brazucas :P |
13:42 |
<alexandre> |
bem.. sendo assim, vou jogar no euromilhoes :P |
13:42 |
<alexandre> |
keres pagar? :D |
13:43 |
<barreiro> |
vi logo que ias pedir :P |
13:43 |
<barreiro> |
pode ser ;) ... qd é que se deve ??? |
13:43 |
<alexandre> |
diz q sao 20? :P |
13:50 |
<barreiro> |
já recebeste o IRS ??? |
14:02 |
<barreiro> |
alexandre, tás 30 aérios mais rico. |
14:02 |
<alexandre> |
barreiro: ja recebi a carta p pagar o IRS :P |
14:03 |
<barreiro> |
são desagradaveis, os gajos :) |
14:04 |
<alexandre> |
pois |
14:04 |
<alexandre> |
tu ainda recebeste neh? |
14:04 |
<barreiro> |
recebi ontem ... tb ainda n paguei :P |
14:06 |
<alexandre> |
mas tb tens de pagar??? |
14:06 |
<barreiro> |
ah pois ... tenho 1 recibo no ano passado :O |
14:08 |
<alexandre> |
yah, mas o resto q descontaste td o ano, devia compensar :P |
14:09 |
<barreiro> |
concordo ... devia compensar !!! ... mas n compensa :S |
14:55 |
<alexandre> |
tao martins |
14:55 |
<alexandre> |
deixaste-nos orfaos de CR2 |
15:03 |
<martins> |
orfaos pq |
15:04 |
<martins> |
tive de fazer a release do maven praí 50x pq o raio do svn rebentava sempre nos commit |
15:04 |
<martins> |
%&%$/ de google |
15:05 |
<alexandre> |
tao mas do hudson so sai as 5 da manha |
15:06 |
<martins> |
hum? |
15:06 |
<martins> |
n percebi |
15:08 |
<alexandre> |
tao, queres q fa?amos a CR2 localmente e testemos? :P |
15:08 |
<alexandre> |
eu tenho algumas alteracoes |
15:09 |
<martins> |
alterações, a CR2 ja esta nos repositorios maven, o zip esta feito e testado, vou agora tratar do upload pro SF |
15:10 |
<martins> |
mandaram-me um mail pra ir fazer uma palestra à univ do minho |
15:11 |
<martins> |
tou a pensar mas dia de 10 setembro, o timining n é bom |
15:11 |
<martins> |
timing |
15:11 |
<barreiro> |
há lá um prof do dpt de informática que é meu conhecido da orientação :P |
15:14 |
<martins> |
quase de certeza q vou declinar o convite |
15:15 |
<martins> |
tb convidam 12 dias antes |
15:15 |
<barreiro> |
mas é algum assunto em especial ??? |
15:16 |
<martins> |
j2ee e jslee, jboss e mobicents |
15:16 |
<martins> |
sistemas confiaveis de larga escala |
15:16 |
<martins> |
parece um titulo de projecto do pch |
15:16 |
<martins> |
http://www.di.uminho.pt/jornadas/join/ |
15:16 |
<barreiro> |
lol |
15:34 |
<martins> |
só recebo é queixas do rorobocop no opuce, agora tenho o chefe do projecto à perna |
16:02 |
<rg> |
hi ...is anyone there ? |
16:05 |
<alexandre> |
hi |
16:05 |
<barreiro> |
hello rg |
16:06 |
<martins> |
cada vez q faço upload para a SF atraves de webdav fico sem IMs e IRC |
16:10 |
<alexandre> |
pensei q fosse cada x q te pe?o guita :D |
16:11 |
<rg> |
hi |
16:12 |
<rg> |
I am facing an issue in the RA that I am working on |
16:13 |
<rg> |
when one of my sbb's tries to get an activity context interface for an activity, I get the TransactionRequiredLocalException |
16:13 |
<rg> |
I know that this exception occurs when a mandatory transaction method is invoked without a valid transaction context. |
16:17 |
<martins> |
hi |
16:17 |
<martins> |
which method |
16:20 |
<martins> |
ra: wake up:) |
16:20 |
<martins> |
rg: wake up |
16:23 |
<martins> |
oh damn, I forgot to commit one patch for CR2 |
16:24 |
<martins> |
oh, I did commit it |
16:24 |
<barreiro> |
ufff |
16:24 |
<martins> |
haha |
16:25 |
<martins> |
for a few seconds I simagined another 6h to do another CR2 release |
16:31 |
<rg> |
alright...sorry guys ....stepped out |
16:31 |
<rg> |
http://groups.google.com/group/mobicents-public/.../25faaf6ddac6529c# |
16:31 |
<rg> |
posted the issue at the above URL |
16:35 |
<martins> |
it's the factory that is throwing the exception? |
16:35 |
<rg> |
Yes |
16:36 |
<martins> |
what is the code of the RA to create the activity |
16:37 |
<martins> |
the one that interacts with SleeEndpoint |
16:38 |
<rg> |
getSleeEndpoint().activityStarted(activity.getHandle()); |
16:39 |
<martins> |
do you have any TransactionManager code there |
16:39 |
<rg> |
and this.sleeEndpoint = bootstrapContext.getSleeEndpoint(); |
16:39 |
<rg> |
I don't |
16:39 |
<rg> |
well....hold on....let me checck |
16:43 |
<rg> |
there is some transaction manager code |
16:48 |
<martins> |
show me |
16:52 |
<rg> |
TransactionManagerImpl txm = (TransactionManagerImpl) SleeContainer .lookupFromJndi().getTransactionManager(); |
16:52 |
<rg> |
try { |
16:52 |
<rg> |
if (txm.getTransaction() == null) { |
16:52 |
<rg> |
txm.begin(); |
16:52 |
<rg> |
started = true; |
16:53 |
<martins> |
remove that code, the RAs don't have to deal with TrnasactionManager |
16:53 |
<rg> |
and in the finally block, transaction is committed in started boolean flag is true |
16:54 |
<martins> |
remove all regarding the tx manager and the tx itself |
16:57 |
<martins> |
btw, do you have a method in the RA such as getActivityHandle(Object activity)? |
16:59 |
<rg> |
yes, but it returns null always |
17:01 |
<martins> |
it should be something as |
17:01 |
<martins> |
you have activities in a activityhandle -> whatever map right? |
17:02 |
<rg> |
yes |
17:03 |
<martins> |
this is not related to your exception, but regarding a bad implementation of the factory that you posted |
17:04 |
<martins> |
change the getActivityHandle method to similar than this one: |
17:04 |
<martins> |
public ActivityHandle getActivityHandle(Object arg0) { |
17:04 |
<martins> |
if (logger.isDebugEnabled()) { |
17:04 |
<martins> |
logger.debug("getActivityHandle"); |
17:04 |
<martins> |
} |
17:04 |
<martins> |
ActivityHandle activityHandle = ((CstaMonitoringActivityImpl)arg0).getHandle(); |
17:04 |
<martins> |
if (activities.containsKey(activityHandle)) { |
17:04 |
<martins> |
return activityHandle; |
17:04 |
<martins> |
} |
17:04 |
<martins> |
else { |
17:04 |
<martins> |
return null; |
17:04 |
<martins> |
} |
17:04 |
<martins> |
} |
17:07 |
<martins> |
then the factory method should be something like: |
17:07 |
<martins> |
public ActivityContextInterface getActivityContextInterface(CstaMonitoringActivity activity) throws NullPointerException, |
17:07 |
<martins> |
UnrecognizedActivityException, FactoryException { |
17:07 |
<martins> |
|
17:07 |
<martins> |
// if parameter is null throw exception |
17:07 |
<martins> |
if (activity == null) { |
17:07 |
<martins> |
throw new NullPointerException(); |
17:07 |
<martins> |
} |
17:07 |
<martins> |
|
17:07 |
<martins> |
// get handle |
17:08 |
<martins> |
ActivityHandle handle = raEntity.getResourceAdaptor().getActivityHandle(activity); |
17:08 |
<martins> |
if (handle == null) { |
17:08 |
<martins> |
throw new UnrecognizedActivityException(activity); |
17:08 |
<martins> |
} |
17:08 |
<martins> |
else { |
17:08 |
<martins> |
return new ActivityContextInterfaceImpl(this.sleeContainer, |
17:08 |
<martins> |
this.activityContextFactory.getActivityContext(new SleeActivityHandle(raEntityName, handle, sleeContainer)).getActivityContextId()); |
17:08 |
<martins> |
} |
17:08 |
<martins> |
|
17:08 |
<martins> |
} |
17:09 |
<martins> |
explaining this particular issue, you don't verify if the activity really exists, and making it worse, you ask for an activity context of that activity, if it doesn't exist it gets created, big chance of leaks |
17:10 |
<martins> |
anyway, like I said, this has nothing to do with your exception |
17:10 |
<rg> |
ok |
17:10 |
<martins> |
regarding your exception something is commiting/rolling back the transaction |
17:11 |
<martins> |
the RA doesn't need to know about the tx, so remove all code on that matter, if it doesn't solve it means you either: |
17:12 |
<martins> |
1) change executing thread, which looses the tx |
17:12 |
<martins> |
2) some api also uses java tx and is getting on the way |
17:13 |
<martins> |
I would offer to have a look at the whole RA and SBB code but I will go on vacation tomorrow and I don't want a laptop near by :-) |
17:16 |
<rg> |
that's understandable |
17:16 |
<rg> |
this code was written by another developer |
17:17 |
<rg> |
so, I will have to see what it does really...end to end |
17:20 |
<martins> |
you always debug and monitor an expression such as SleeContainer .lookupFromJndi().getTransactionManager().getTransaction() |
17:20 |
<martins> |
you can |
17:21 |
<martins> |
once you loose the tx that's it, but beware the tx has a timeout |
17:25 |
<rg> |
ok |
20:33 |
<alexandre> |
hey y'all! |