CMDBuild Forum

errore "card non trovata in *nome_classe*"

Buonasera,

ho importato da un file csv un elenco corposo di dati in una classe cmdbuild (circa 400 record).

i dati sono stati importati correttamente, ma riscontro i seguenti problemi:

  • quando visualizzo le schede da modulo di gestione dati ottengo questo errore "card non trovata in nome_classe" se provo ad utilizzare le schede "Relazioni" e "Allegati"
  • lo stesso comportamento "card non trovata" si verifica se provo a modificare un attributi qualsiasi di una scheda (sempre dal modulo di gestione dati).
  • l'errore si verifica anche se provo ad elminare una scheda.

 

dai log di cmdbuild vedo sempre questo errore "cannot lazy load card":

Vi indico il log di seguito:

 

INFO  2009-11-27 15:14:32 [jsonrpc ] Calling url /management/modcard/updatecard

ERROR 2009-11-27 15:14:32 [persist ] Cannot lazy load card: 22141, 62

ERROR 2009-11-27 15:14:32 [jsonrpc ] json rpc error

java.lang.reflect.InvocationTargetException

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:597)

        at org.cmdbuild.servlets.JSONDispatcher.dispatch(JSONDispatcher.java:80)

        at org.cmdbuild.servlets.JSONDispatcher.doPost(JSONDispatcher.java:44)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:29)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:30)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:47)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)

        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

        at java.lang.Thread.run(Thread.java:619)

Caused by: org.cmdbuild.exception.NotFoundException

        at org.cmdbuild.exception.NotFoundException$NotFoundExceptionType.createException(NotFoundException.java:25)

        at org.cmdbuild.elements.CardFilterManager.get(CardFilterManager.java:306)

        at org.cmdbuild.elements.proxy.CardFilterManagerForwarder.get(CardFilterManagerForwarder.java:48)

        at org.cmdbuild.elements.proxy.CardFilterManagerProxy.get(CardFilterManagerProxy.java:49)

        at org.cmdbuild.elements.proxy.LazyCard.get(LazyCard.java:54)

        at org.cmdbuild.elements.proxy.CardForwarder.getValue(CardForwarder.java:56)

        at org.cmdbuild.elements.proxy.CardForwarder.getValue(CardForwarder.java:56)

        at org.cmdbuild.servlets.json.management.ModCard.setCardAttributes(ModCard.java:381)

        at org.cmdbuild.servlets.json.management.ModCard.updateCard(ModCard.java:344)

        ... 32 more

WARN  2009-11-27 15:14:32 [jsonrpc ] A org.cmdbuild.exception.NotFoundException occurred calling method class org.cmdbuild.servlets.json.management.ModCard.updateCard

 

 

 

 

INFO  2009-11-27 15:33:43 [jsonrpc ] Calling url /management/modcard/deletecard

ERROR 2009-11-27 15:33:43 [persist ] Cannot lazy load card: 22141, 62

ERROR 2009-11-27 15:33:43 [jsonrpc ] json rpc error

java.lang.reflect.InvocationTargetException

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:597)

        at org.cmdbuild.servlets.JSONDispatcher.dispatch(JSONDispatcher.java:80)

        at org.cmdbuild.servlets.JSONDispatcher.doPost(JSONDispatcher.java:44)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:29)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:30)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:47)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)

        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)

        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)

        at java.lang.Thread.run(Thread.java:619)

Caused by: org.cmdbuild.exception.NotFoundException

        at org.cmdbuild.exception.NotFoundException$NotFoundExceptionType.createException(NotFoundException.java:25)

        at org.cmdbuild.elements.CardFilterManager.get(CardFilterManager.java:306)

        at org.cmdbuild.elements.proxy.CardFilterManagerForwarder.get(CardFilterManagerForwarder.java:48)

        at org.cmdbuild.elements.proxy.CardFilterManagerProxy.get(CardFilterManagerProxy.java:49)

        at org.cmdbuild.elements.proxy.LazyCard.get(LazyCard.java:54)

        at org.cmdbuild.elements.proxy.CardForwarder.setStatus(CardForwarder.java:53)

        at org.cmdbuild.elements.proxy.CardForwarder.setStatus(CardForwarder.java:53)

        at org.cmdbuild.servlets.json.management.ModCard.deleteCard(ModCard.java:390)

        ... 32 more

WARN  2009-11-27 15:33:43 [jsonrpc ] A org.cmdbuild.exception.NotFoundException occurred calling method class org.cmdbuild.servlets.json.management.ModCard.deleteCard

 

 

 

dai log di cmdbuild vedo sempre questo errore "cannot lazy load card":

Vi indico il log di seguito:

 

INFO  2009-11-27 15:14:32 [jsonrpc ] Calling url /management/modcard/updatecard

ERROR 2009-11-27 15:14:32 [persist ] Cannot lazy load card: 22141, 62

[...]

 

Salve, potrebbe inviarci anche il log dettagliato delle chiamate SQL? In WEB-INF/conf/log4j.conf deve modificare la riga relativa al logger SQL in DEBUG (log4j.logger.sql=DEBUG).

 

Il programma tenta di caricare una card con IdClass 22141 e Id 62. Per controllare che l'IdClass sia corretto può eseguire questa query SQL:

 

SELECT 22141::regclass;

 

Per controllare che ci sia una card corrispondente nel database può eseguire

:

 

SELECT * FROM "Class" WHERE "IdClass"=22141::regclass AND "Id"=62 AND "Status"='A';

 

Inoltre se la card è stata trovata, consiglio di provare se si trova nella tabella corretta sostituendo a "Class" il nome della sottoclasse data da 22141::regclass. Ad es. se 22141::regclass tornasse '"Computer"', andrà eseguita:

 

SELECT * FROM "Computer" WHERE "IdClass"=22141::regclass AND "Id"=62 AND "Status"='A';

 

(è da notare che il regclass ritorna '"Computer"' ma il nome della tabella è "Computer")

 

 

Paolo

 

 

Previously Tecnoteca wrote:

 

dai log di cmdbuild vedo sempre questo errore "cannot lazy load card":

Vi indico il log di seguito:

 

INFO  2009-11-27 15:14:32 [jsonrpc ] Calling url /management/modcard/updatecard

ERROR 2009-11-27 15:14:32 [persist ] Cannot lazy load card: 22141, 62

[...]

 

Salve, potrebbe inviarci anche il log dettagliato delle chiamate SQL? In WEB-INF/conf/log4j.conf deve modificare la riga relativa al logger SQL in DEBUG (log4j.logger.sql=DEBUG).

 

Il programma tenta di caricare una card con IdClass 22141 e Id 62. Per controllare che l'IdClass sia corretto può eseguire questa query SQL:

 

SELECT 22141::regclass;

 

Per controllare che ci sia una card corrispondente nel database può eseguire

:

 

SELECT * FROM "Class" WHERE "IdClass"=22141::regclass AND "Id"=62 AND "Status"='A';

 

Inoltre se la card è stata trovata, consiglio di provare se si trova nella tabella corretta sostituendo a "Class" il nome della sottoclasse data da 22141::regclass. Ad es. se 22141::regclass tornasse '"Computer"', andrà eseguita:

 

SELECT * FROM "Computer" WHERE "IdClass"=22141::regclass AND "Id"=62 AND "Status"='A';

 

(è da notare che il regclass ritorna '"Computer"' ma il nome della tabella è "Computer")

 

 

Paolo

Di seguito quanto mi avete chiesto.

Come vedrete, pur essendo presente il record sul database, non viene trovato. (ho controllanto con il client di Postgresql ed il record esiste).

Volevo provvedere all'eliminazione di tutti i record della tabella e riprovare ad importare via CSV, ma senza eliminare la classe perchè è descritta da molti campi:

  • ma se elimino un record a mano dalla tabella "SchedeMacchine" ottengo un errore di violazione sulla primary key
  • esiste un modo per duplicare una classe?

 

Grazie per la collaborazione e buon lavoro.

 

Giuseppe

 

 

cmdbuild=# SELECT 22141::regclass;
     regclass
------------------
 "SchedeMacchine"
(1 row)

cmdbuild=# SELECT * FROM "SchedeMacchine" WHERE "IdClass"=22141::regclass AND "Id"=62 AND "Status"='A';
 Id | IdClass | Code | Description | Status | User | BeginDate | Notes | ID | Macchina | Utente | Contatto | Macchine | Processore | Modello | NumSerie | Memoria | CompostaDa | HD1 | HD2 | HD3 | HD4 | HD5 | HD6 | Tastiera | Mouse | SchedaGrafica | SchedaRete | ControllerSCSI | Tape | Raid | Mirror | SistemaOperativo | ProgrammiInstallati | Username | Password | IndirizzoIP | Maschera | NomeMacchine | DNS | Dominio | GruppoDiLavoro | DHCP | Gateway | Proxy | Wins | Tecnico | Data | Note
----+---------+------+-------------+--------+------+-----------+-------+----+----------+--------+----------+----------+------------+---------+----------+---------+------------+-----+-----+-----+-----+-----+-----+----------+-------+---------------+------------+----------------+------+------+--------+------------------+---------------------+----------+----------+-------------+----------+--------------+-----+---------+----------------+------+---------+-------+------+---------+------+------
(0 rows)

 

 

DEBUG 2009-11-30 14:53:31 [sql     ] SELECT DISTINCT "SchedeMacchine"."User" AS "SchedeMacchine_User", "SchedeMacchine"."Wins" AS "SchedeMacchine_Wins", "SchedeMacchine"."BeginDate" AS "SchedeMacchine_BeginDate", "SchedeMacchine"."SchedaGrafica" AS "SchedeMacchine_SchedaGrafica", "SchedeMacchine"."SistemaOperativo" AS "SchedeMacchine_SistemaOperativo", "SchedeMacchine"."Data" AS "SchedeMacchine_Data", "SchedeMacchine"."DHCP" AS "SchedeMacchine_DHCP", "SchedeMacchine"."Modello" AS "SchedeMacchine_Modello", "SchedeMacchine"."NumSerie" AS "SchedeMacchine_NumSerie", "SchedeMacchine"."ID" AS "SchedeMacchine_ID", "SchedeMacchine"."Tastiera" AS "SchedeMacchine_Tastiera", "SchedeMacchine"."DNS" AS "SchedeMacchine_DNS", "SchedeMacchine"."Contatto" AS "SchedeMacchine_Contatto", "SchedeMacchine"."IdClass"::int4 AS "SchedeMacchine_IdClass", "SchedeMacchine"."GruppoDiLavoro" AS "SchedeMacchine_GruppoDiLavoro", "SchedeMacchine"."Maschera" AS "SchedeMacchine_Maschera", "SchedeMacchine"."SchedaRete" AS "SchedeMacchine_SchedaRete", "SchedeMacchine"."Notes" AS "SchedeMacchine_Notes", "SchedeMacchine"."Dominio" AS "SchedeMacchine_Dominio", "SchedeMacchine"."IndirizzoIP" AS "SchedeMacchine_IndirizzoIP", "SchedeMacchine"."Id" AS "SchedeMacchine_Id", "SchedeMacchine"."Utente" AS "SchedeMacchine_Utente", "SchedeMacchine"."NomeMacchine" AS "SchedeMacchine_NomeMacchine", "SchedeMacchine"."Memoria" AS "SchedeMacchine_Memoria", "SchedeMacchine"."Password" AS "SchedeMacchine_Password", "SchedeMacchine"."Tecnico" AS "SchedeMacchine_Tecnico", "SchedeMacchine"."Code" AS "SchedeMacchine_Code", "SchedeMacchine"."Macchine" AS "SchedeMacchine_Macchine", "SchedeMacchine"."Proxy" AS "SchedeMacchine_Proxy", "SchedeMacchine"."Macchina" AS "SchedeMacchine_Macchina", "SchedeMacchine"."Tape" AS "SchedeMacchine_Tape", "SchedeMacchine"."HD2" AS "SchedeMacchine_HD2", "SchedeMacchine"."CompostaDa" AS "SchedeMacchine_CompostaDa", "SchedeMacchine"."HD3" AS "SchedeMacchine_HD3", "SchedeMacchine"."Description" AS "SchedeMacchine_Description", "SchedeMacchine"."HD1" AS "SchedeMacchine_HD1", "SchedeMacchine"."Raid" AS "SchedeMacchine_Raid", "SchedeMacchine"."Mirror" AS "SchedeMacchine_Mirror", "SchedeMacchine"."Note" AS "SchedeMacchine_Note", "SchedeMacchine"."HD6" AS "SchedeMacchine_HD6", "SchedeMacchine"."HD4" AS "SchedeMacchine_HD4", "SchedeMacchine"."HD5" AS "SchedeMacchine_HD5", "SchedeMacchine"."Status" AS "SchedeMacchine_Status", "SchedeMacchine"."Processore" AS "SchedeMacchine_Processore", "SchedeMacchine"."ProgrammiInstallati" AS "SchedeMacchine_ProgrammiInstallati", "SchedeMacchine"."ControllerSCSI" AS "SchedeMacchine_ControllerSCSI", "SchedeMacchine"."Username" AS "SchedeMacchine_Username", "SchedeMacchine"."Gateway" AS "SchedeMacchine_Gateway", "SchedeMacchine"."Mouse" AS "SchedeMacchine_Mouse", (SELECT DISTINCT COUNT(*) FROM "SchedeMacchine" AS "SchedeMacchine"  WHERE ( "SchedeMacchine"."Status" = 'A' )) AS "Count" FROM "SchedeMacchine" AS "SchedeMacchine"  WHERE ( "SchedeMacchine"."Status" = 'A' ) ORDER BY "SchedeMacchine"."Description" ASC, "SchedeMacchine"."Id" ASC  OFFSET 0 LIMIT 20
INFO  2009-11-30 14:53:31 [jsonrpc ] Calling url /schema/modclass/getdomainlist
DEBUG 2009-11-30 14:53:31 [sql     ] SELECT * FROM system_domaincatalog WHERE (domainclass1 = ANY (string_to_array(SchedeMacchine, ','))) OR (domainclass2 = ANY (string_to_array(SchedeMacchine, ',')))
INFO  2009-11-30 14:53:32 [jsonrpc ] Calling url /schema/modclass/getdomainlist
DEBUG 2009-11-30 14:53:32 [sql     ] SELECT * FROM system_domaincatalog WHERE (domainclass1 = ANY (string_to_array(SchedeMacchine, ','))) OR (domainclass2 = ANY (string_to_array(SchedeMacchine, ',')))
INFO  2009-11-30 14:53:43 [jsonrpc ] Calling url /management/modcard/getrelationlist
DEBUG 2009-11-30 14:53:43 [sql     ] SELECT DISTINCT "SchedeMacchine"."User" AS "SchedeMacchine_User", "SchedeMacchine"."Wins" AS "SchedeMacchine_Wins", "SchedeMacchine"."BeginDate" AS "SchedeMacchine_BeginDate", "SchedeMacchine"."SchedaGrafica" AS "SchedeMacchine_SchedaGrafica", "SchedeMacchine"."SistemaOperativo" AS "SchedeMacchine_SistemaOperativo", "SchedeMacchine"."Data" AS "SchedeMacchine_Data", "SchedeMacchine"."DHCP" AS "SchedeMacchine_DHCP", "SchedeMacchine"."Modello" AS "SchedeMacchine_Modello", "SchedeMacchine"."NumSerie" AS "SchedeMacchine_NumSerie", "SchedeMacchine"."ID" AS "SchedeMacchine_ID", "SchedeMacchine"."Tastiera" AS "SchedeMacchine_Tastiera", "SchedeMacchine"."DNS" AS "SchedeMacchine_DNS", "SchedeMacchine"."Contatto" AS "SchedeMacchine_Contatto", "SchedeMacchine"."IdClass"::int4 AS "SchedeMacchine_IdClass", "SchedeMacchine"."GruppoDiLavoro" AS "SchedeMacchine_GruppoDiLavoro", "SchedeMacchine"."Maschera" AS "SchedeMacchine_Maschera", "SchedeMacchine"."SchedaRete" AS "SchedeMacchine_SchedaRete", "SchedeMacchine"."Notes" AS "SchedeMacchine_Notes", "SchedeMacchine"."Dominio" AS "SchedeMacchine_Dominio", "SchedeMacchine"."IndirizzoIP" AS "SchedeMacchine_IndirizzoIP", "SchedeMacchine"."Id" AS "SchedeMacchine_Id", "SchedeMacchine"."Utente" AS "SchedeMacchine_Utente", "SchedeMacchine"."NomeMacchine" AS "SchedeMacchine_NomeMacchine", "SchedeMacchine"."Memoria" AS "SchedeMacchine_Memoria", "SchedeMacchine"."Password" AS "SchedeMacchine_Password", "SchedeMacchine"."Tecnico" AS "SchedeMacchine_Tecnico", "SchedeMacchine"."Code" AS "SchedeMacchine_Code", "SchedeMacchine"."Macchine" AS "SchedeMacchine_Macchine", "SchedeMacchine"."Proxy" AS "SchedeMacchine_Proxy", "SchedeMacchine"."Macchina" AS "SchedeMacchine_Macchina", "SchedeMacchine"."Tape" AS "SchedeMacchine_Tape", "SchedeMacchine"."HD2" AS "SchedeMacchine_HD2", "SchedeMacchine"."CompostaDa" AS "SchedeMacchine_CompostaDa", "SchedeMacchine"."HD3" AS "SchedeMacchine_HD3", "SchedeMacchine"."Description" AS "SchedeMacchine_Description", "SchedeMacchine"."HD1" AS "SchedeMacchine_HD1", "SchedeMacchine"."Raid" AS "SchedeMacchine_Raid", "SchedeMacchine"."Mirror" AS "SchedeMacchine_Mirror", "SchedeMacchine"."Note" AS "SchedeMacchine_Note", "SchedeMacchine"."HD6" AS "SchedeMacchine_HD6", "SchedeMacchine"."HD4" AS "SchedeMacchine_HD4", "SchedeMacchine"."HD5" AS "SchedeMacchine_HD5", "SchedeMacchine"."Status" AS "SchedeMacchine_Status", "SchedeMacchine"."Processore" AS "SchedeMacchine_Processore", "SchedeMacchine"."ProgrammiInstallati" AS "SchedeMacchine_ProgrammiInstallati", "SchedeMacchine"."ControllerSCSI" AS "SchedeMacchine_ControllerSCSI", "SchedeMacchine"."Username" AS "SchedeMacchine_Username", "SchedeMacchine"."Gateway" AS "SchedeMacchine_Gateway", "SchedeMacchine"."Mouse" AS "SchedeMacchine_Mouse" FROM "SchedeMacchine" AS "SchedeMacchine"  WHERE ( ( "SchedeMacchine"."Id" = 62 ) AND ( "SchedeMacchine"."Status" = 'A' ) ) ORDER BY "SchedeMacchine"."Id" ASC
ERROR 2009-11-30 14:53:43 [persist ] Cannot lazy load card: 22141, 62
ERROR 2009-11-30 14:53:43 [jsonrpc ] json rpc error
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.cmdbuild.servlets.JSONDispatcher.dispatch(JSONDispatcher.java:80)
        at org.cmdbuild.servlets.JSONDispatcher.doPost(JSONDispatcher.java:44)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:29)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:30)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:47)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
Caused by: org.cmdbuild.exception.NotFoundException
        at org.cmdbuild.exception.NotFoundException$NotFoundExceptionType.createException(NotFoundException.java:25)
        at org.cmdbuild.elements.CardFilterManager.get(CardFilterManager.java:306)
        at org.cmdbuild.elements.proxy.CardFilterManagerForwarder.get(CardFilterManagerForwarder.java:48)
        at org.cmdbuild.elements.proxy.CardFilterManagerProxy.get(CardFilterManagerProxy.java:49)
        at org.cmdbuild.elements.proxy.LazyCard.get(LazyCard.java:54)
        at org.cmdbuild.elements.proxy.CardForwarder.isNew(CardForwarder.java:58)
        at org.cmdbuild.elements.proxy.CardForwarder.isNew(CardForwarder.java:58)
        at org.cmdbuild.servlets.json.management.ModCard.getRelationList(ModCard.java:473)
        ... 32 more
WARN  2009-11-30 14:53:43 [jsonrpc ] A org.cmdbuild.exception.NotFoundException occurred calling method class org.cmdbuild.servlets.json.management.ModCard.getRelationList
INFO  2009-11-30 14:53:46 [jsonrpc ] Calling url /management/modcard/getcardhistory
DEBUG 2009-11-30 14:53:46 [sql     ] SELECT * FROM system_attributecatalog WHERE classid=22141 ORDER BY attributeindex, dbindex
DEBUG 2009-11-30 14:53:47 [sql     ] SELECT DISTINCT "SchedeMacchine"."CurrentId" AS "SchedeMacchine_Id", "SchedeMacchine"."IdClass"::int4 AS "SchedeMacchine_IdClass", "SchedeMacchine"."Status" AS "SchedeMacchine_Status", "SchedeMacchine"."User" AS "SchedeMacchine_User", "SchedeMacchine"."BeginDate" AS "SchedeMacchine_BeginDate", "SchedeMacchine"."Code" AS "SchedeMacchine_Code", "SchedeMacchine"."Description" AS "SchedeMacchine_Description", "SchedeMacchine"."Notes" AS "SchedeMacchine_Notes", "SchedeMacchine"."ID" AS "SchedeMacchine_ID", "SchedeMacchine"."Macchina" AS "SchedeMacchine_Macchina", "SchedeMacchine"."Utente" AS "SchedeMacchine_Utente", "SchedeMacchine"."Contatto" AS "SchedeMacchine_Contatto", "SchedeMacchine"."Macchine" AS "SchedeMacchine_Macchine", "SchedeMacchine"."Processore" AS "SchedeMacchine_Processore", "SchedeMacchine"."Modello" AS "SchedeMacchine_Modello", "SchedeMacchine"."NumSerie" AS "SchedeMacchine_NumSerie", "SchedeMacchine"."Memoria" AS "SchedeMacchine_Memoria", "SchedeMacchine"."CompostaDa" AS "SchedeMacchine_CompostaDa", "SchedeMacchine"."HD1" AS "SchedeMacchine_HD1", "SchedeMacchine"."HD2" AS "SchedeMacchine_HD2", "SchedeMacchine"."HD3" AS "SchedeMacchine_HD3", "SchedeMacchine"."HD4" AS "SchedeMacchine_HD4", "SchedeMacchine"."HD5" AS "SchedeMacchine_HD5", "SchedeMacchine"."HD6" AS "SchedeMacchine_HD6", "SchedeMacchine"."Tastiera" AS "SchedeMacchine_Tastiera", "SchedeMacchine"."Mouse" AS "SchedeMacchine_Mouse", "SchedeMacchine"."SchedaGrafica" AS "SchedeMacchine_SchedaGrafica", "SchedeMacchine"."SchedaRete" AS "SchedeMacchine_SchedaRete", "SchedeMacchine"."ControllerSCSI" AS "SchedeMacchine_ControllerSCSI", "SchedeMacchine"."Tape" AS "SchedeMacchine_Tape", "SchedeMacchine"."Raid" AS "SchedeMacchine_Raid", "SchedeMacchine"."Mirror" AS "SchedeMacchine_Mirror", "SchedeMacchine"."SistemaOperativo" AS "SchedeMacchine_SistemaOperativo", "SchedeMacchine"."ProgrammiInstallati" AS "SchedeMacchine_ProgrammiInstallati", "SchedeMacchine"."Username" AS "SchedeMacchine_Username", "SchedeMacchine"."Password" AS "SchedeMacchine_Password", "SchedeMacchine"."IndirizzoIP" AS "SchedeMacchine_IndirizzoIP", "SchedeMacchine"."Maschera" AS "SchedeMacchine_Maschera", "SchedeMacchine"."NomeMacchine" AS "SchedeMacchine_NomeMacchine", "SchedeMacchine"."DNS" AS "SchedeMacchine_DNS", "SchedeMacchine"."Dominio" AS "SchedeMacchine_Dominio", "SchedeMacchine"."GruppoDiLavoro" AS "SchedeMacchine_GruppoDiLavoro", "SchedeMacchine"."DHCP" AS "SchedeMacchine_DHCP", "SchedeMacchine"."Gateway" AS "SchedeMacchine_Gateway", "SchedeMacchine"."Proxy" AS "SchedeMacchine_Proxy", "SchedeMacchine"."Wins" AS "SchedeMacchine_Wins", "SchedeMacchine"."Tecnico" AS "SchedeMacchine_Tecnico", "SchedeMacchine"."Data" AS "SchedeMacchine_Data", "SchedeMacchine"."Note" AS "SchedeMacchine_Note", "SchedeMacchine"."EndDate" AS "SchedeMacchine_EndDate" FROM "SchedeMacchine_history" AS "SchedeMacchine"  WHERE ( "SchedeMacchine"."CurrentId" = 62 ) ORDER BY "SchedeMacchine"."CurrentId" ASC
DEBUG 2009-11-30 14:53:47 [sql     ] SELECT iddomain, direct, idclass1, idobj1, idclass2, idobj2, fieldcode, fielddescription, begindate, enddate, username FROM system_relationlist_history WHERE (idclass1, idobj1) IN ((22141,62))  AND NOT "status"='A'
DEBUG 2009-11-30 14:53:48 [sql     ] Query execution time: 966ms


 

 

 

Come vedrete, pur essendo presente il record sul database, non viene trovato. (ho controllanto con il client di Postgresql ed il record esiste).

Non leggo l'output della prima query richiesta, che da quanto ha scritto dovrebbe ritornare un risultato.

SELECT * FROM "Class" WHERE "IdClass"=22141::regclass AND "Id"=62 AND "Status"='A';

Che query ha usato per controllare che il record esista?

Volevo provvedere all'eliminazione di tutti i record della tabella e riprovare ad importare via CSV, ma senza eliminare la classe perchè è descritta da molti campi:

  • ma se elimino un record a mano dalla tabella "SchedeMacchine" ottengo un errore di violazione sulla primary key

Potrebbe inviarci anche l'output SQL della rimozione del record? È strano che l'errore sia sulla primary key e non su una eventuale foreign key.

  • esiste un modo per duplicare una classe?

No, non è possibile duplicare una classe. Un modo per eliminare tutte le card da una classe è di utilizzare il comando SQL TRUNCATE, MA può essere usato in sicurezza SOLO SE non sono presenti domini sulla classe, altrimenti potrebbero crearsi inconsistenze. Nel suo caso, qualora non siano effettivamente presenti domini sulla classe "SchedeMacchine" o su una sua superclasse (può verificarlo nel tab domini dal modulo di amministrazione), può eseguire:

TRUNCATE "SchedeMacchine", "SchedeMacchine_history";

 

In futuro consiglio di eseguire un backup del database periodico e prima di ogni operazione critica (ad esempio importazioni o aggiornamenti).

 

Paolo


 

Previously Tecnoteca wrote:

 

Come vedrete, pur essendo presente il record sul database, non viene trovato. (ho controllanto con il client di Postgresql ed il record esiste).

Non leggo l'output della prima query richiesta, che da quanto ha scritto dovrebbe ritornare un risultato.

SELECT * FROM "Class" WHERE "IdClass"=22141::regclass AND "Id"=62 AND "Status"='A';

Che query ha usato per controllare che il record esista?

l'output è esattamente quello che vi ho mostrato.

la query è stata lanciata direttamente da riga di comando con utente postgres.

la query era questa:

SELECT * FROM "SchedeMacchine" WHERE "IdClass"=22141::regclass AND "Id"=62 AND "Status"='A';

Volevo provvedere all'eliminazione di tutti i record della tabella e riprovare ad importare via CSV, ma senza eliminare la classe perchè è descritta da molti campi:

  • ma se elimino un record a mano dalla tabella "SchedeMacchine" ottengo un errore di violazione sulla primary key

Potrebbe inviarci anche l'output SQL della rimozione del record? È strano che l'errore sia sulla primary key e non su una eventuale foreign key.

scusate, era sulla foreing key. non riesco a mandarvi la query perchè, come vi avevo scritto, ho lanciato l'eliminazione del record utlizzando il client grafico di postgres per windows ottenendo quell'errore sulla foreign key.

  • esiste un modo per duplicare una classe?

No, non è possibile duplicare una classe. Un modo per eliminare tutte le card da una classe è di utilizzare il comando SQL TRUNCATE, MA può essere usato in sicurezza SOLO SE non sono presenti domini sulla classe, altrimenti potrebbero crearsi inconsistenze. Nel suo caso, qualora non siano effettivamente presenti domini sulla classe "SchedeMacchine" o su una sua superclasse (può verificarlo nel tab domini dal modulo di amministrazione), può eseguire:

TRUNCATE "SchedeMacchine", "SchedeMacchine_history";

non ho domini per quella classe. il comando è andato a buon fine, ora provo a re-importare i dati.

 

In futuro consiglio di eseguire un backup del database periodico e prima di ogni operazione critica (ad esempio importazioni o aggiornamenti).

 

Paolo

Grazie per il consiglio, Paolo.

Sto lavorando su un ambiente di test e con dati di prova, non mi sono posto il problema.

Vi segnalo un'altra cosa strana: ho appena fatto l'aggiornamento alla versione 1.1.1 e, ricollegandomi a cmdbuild, non ottenevo più gli errori che vi avevo segnalato in origine. Le schede, una volta visualizzata e selezionate, non producevano più l'errore.

In ogni caso, ho eseguito la truncate sulle due tabelle ed ho reimportato tutti i dati.

Funziona tutto regolarmente.

Grazie per la collaborazione e buon lavoroco.

Giuseppe