Hi:
I have 3 db's, a 9.2.0.4 (PROD) release, a 8.1.7.0 (BRIDGE) and a 7.3.4 (TRON), my function GC_F_RECUPERA_FOLIOS_LASER_MMX (Saved on BRIDGE with a public synonym on PROD GC_F_RECUPERA_FOLIOS_LASER_MMX@BRIDGE) is called from PROD and is trying to select and update data in my 7.3.4 DB and insert data on my 9.2.0.4

1 DECLARE
2 L_NUMERO NUMBER;
3 BEGIN
4 L_NUMERO := GC_F_RECUPERA_FOLIOS_LASER(100);
5 DBMS_OUTPUT.PUT_LINE(L_NUMERO);
6* END;
SQL> /
DECLARE
*
ERROR at line 1:
ORA-02055: distributed update operation failed; rollback required
ORA-02064: distributed operation not supported
ORA-06512: at "TRON2000.GC_F_RECUPERA_FOLIOS_LASER_MMX", line 60
ORA-06512: at line 60

My function is next:
CREATE OR REPLACE FUNCTION "TRON2000"."GC_F_RECUPERA_FOLIOS_LASER_MMX"

(p_imp_recibo number)
RETURN number AS
--
-- CURSOR QUE RECUPERA EL NUMERO DE FOLIO
-- PARA EL RECIBO
CURSOR lc_folios IS
SELECT TO_CHAR(cod_conse) ||
SUBSTR(TO_CHAR(num_ano, '00'), 2, 2) ||
SUBSTR(TO_CHAR(num_folio, '00000000'), 2, 8)
FROM folios_laser_tron --PUBLIC SYNONYM on BRIDGE AND PROD OF TABLE OF TRON
WHERE cod_conse = DECODE(SIGN(p_imp_recibo), 1, 1, 2)
AND num_ano = TO_NUMBER(TO_CHAR(SYSDATE, 'YY'));
--
l_retorno NUMBER := NULL;
--
BEGIN
--
-- OBTIENE EL NUMERO DE FOLIO
OPEN lc_folios;
FETCH lc_folios INTO l_retorno;
CLOSE lc_folios;
--
-- VERIFICA LA EXISTENCIA DEL CONSECUTIVO
IF l_retorno IS NULL
THEN
--
INSERT INTO folios_laser_tron
VALUES( DECODE(SIGN(p_imp_recibo), 1, 1, 2)
,TO_NUMBER(TO_CHAR(SYSDATE, 'YY'))
,2);
--
COMMIT;
--
OPEN lc_folios;
FETCH lc_folios INTO l_retorno;
CLOSE lc_folios;
--
-- SI EXISTE INCREMENTA EL FOLIO
ELSE
--
UPDATE folios_laser_tron
SET num_folio = num_folio + 1
WHERE cod_conse = DECODE(SIGN(p_imp_recibo), 1, 1, 2)
AND num_ano = TO_NUMBER(TO_CHAR(SYSDATE, 'YY'));
--
COMMIT;
--
END IF;
--
RETURN l_retorno;
--
END gc_f_recupera_folios_laser_mmx;

Any suggestions about my issue?