BLOB not found

26 views
Skip to first unread message

Fabio Luis - Vanguarda TI

unread,
Mar 18, 2025, 5:59:08 PMMar 18
to firebi...@googlegroups.com
Hi.

From time to time I receive the message "BLOB not found".

Environment:
  • APP server
    • Rocky Linux release 8.5 (aarch64)
    • docker-ce-20.10.12-3
    • zulu-openjdk8.0.302
    • payara-server-full-5.2022.3 (JDBC connection pool | Eclipse Persistence Services - 2.7.9.payara-p2)
    • jaybird-5.0.6.java8.jar
  • DB server
    • Rocky Linux release 8.5 (x86_64)
    • Firebird 5.0 (ver. LI-V5.0.1.1469)
  • Both servers are on the same VPC using internal IP addresses to communicate each other.

Stacktrace:

Local Exception Stack: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.7.9.payara-p2): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: BLOB not found [SQLState:HY000, ISC error code:335544382] Error Code: 335544382 Call: SELECT MY_FIELDS FROM MY_TABLE WHERE SOME_CONDITIONS ORDER BY FIELD ASC bind => [XXXX, XXXX, 11111111111111, 2025-03-15 23:52:40.145] Query: ReadAllQuery(name="jpaQueryName" referenceClass=MyClass sql="SELECT MY_FIELDS FROM MY_TABLE WHERE SOME_CONDITIONS ORDER BY FIELD ASC") at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:333) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.getObject(DatabaseAccessor.java:1337) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.fetchRow(DatabaseAccessor.java:1083) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processResultSet(DatabaseAccessor.java:775) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:664) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:567) at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2105) at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:603) at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:265) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:277) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:263) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:334) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:746) at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2776) at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2729) at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:584) at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1232) at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:911) at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1191) at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:485) at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1279) at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:3004) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1898) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1880) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1845) at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:262) at org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:482) at MyCompanyStackCall at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: BLOB not found [SQLState:HY000, ISC error code:335544382] at org.firebirdsql.gds.ng.FbExceptionBuilder$Type$1.createSQLException(FbExceptionBuilder.java:618) at org.firebirdsql.gds.ng.FbExceptionBuilder.toFlatSQLException(FbExceptionBuilder.java:384) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readStatusVector(AbstractWireOperations.java:154) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readStatusVector(AbstractWireOperations.java:99) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.processOperation(AbstractWireOperations.java:209) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readOperationResponse(AbstractWireOperations.java:175) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readResponse(AbstractWireOperations.java:169) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readGenericResponse(AbstractWireOperations.java:283) at org.firebirdsql.gds.ng.wire.AbstractFbWireDatabase.readGenericResponse(AbstractFbWireDatabase.java:206) at org.firebirdsql.gds.ng.wire.version10.V10InputBlob.open(V10InputBlob.java:76) at org.firebirdsql.gds.impl.GDSHelper.openBlob(GDSHelper.java:137) at org.firebirdsql.jdbc.FBBlob.openBlob(FBBlob.java:200) at org.firebirdsql.jdbc.FBBlobInputStream.(FBBlobInputStream.java:53) at org.firebirdsql.jdbc.FBBlob.getBinaryStream(FBBlob.java:373) at org.firebirdsql.jdbc.field.FBLongVarCharField.getBytes(FBLongVarCharField.java:125) at org.firebirdsql.jdbc.field.FBLongVarCharField.getString(FBLongVarCharField.java:171) at org.firebirdsql.jdbc.field.FBStringField.getObject(FBStringField.java:79) at org.firebirdsql.jdbc.field.FBLongVarCharField.getObject(FBLongVarCharField.java:44) at org.firebirdsql.jdbc.FBResultSet.getObject(FBResultSet.java:530) at com.sun.gjc.spi.base.ResultSetWrapper.getObject(ResultSetWrapper.java:830) at org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getObjectFromResultSet(DatabasePlatform.java:1454) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.getObject(DatabaseAccessor.java:1308) ... 36 more Caused by: org.firebirdsql.jdbc.FBSQLExceptionInfo: BLOB not found


Thanks
Fabio Silva

Mark Rotteveel

unread,
Mar 19, 2025, 4:30:33 AMMar 19
to firebi...@googlegroups.com
On 18/03/2025 22:58, Fabio Luis - Vanguarda TI wrote:
> From time to time I receive the message "BLOB not found".

Looking at the stacktrace, it was the server which reported the blob was
not found.

This would mean that Firebird sent a blob id in the query result that
doesn't actually exist, or it was deleted in the mean time, or Jaybird
decoded or encoded it wrong (but if that were the case, I'd expect all,
or at least most, of your blobs to be not found).

Blobs shouldn't be deleted as long as a transaction is active, and given
you could access the result set, the transaction was still active, or
you used a holdable result set (which would cache the blob locally
before commit).

Without a reproducible case, it is hard to be certain, but my first
guess would be a bug in Firebird (though that might be my bias).

You could try upgrading to Firebird 5.0.2, but as there was no
blob-related fixes as far as I can see, I don't expect that to change
anything.

Does the query involve any expressions or calculated columns that
generate (temporary) blobs?

Mark

> Environment:
>
> * APP server
> o Rocky Linux release 8.5 (*aarch64*)
> o docker-ce-20.10.12-3
> o zulu-openjdk8.0.302
> o payara-server-full-5.2022.3 (JDBC connection pool | Eclipse
> Persistence Services - 2.7.9.payara-p2)
> o jaybird-5.0.6.java8.jar
> * DB server
> o Rocky Linux release 8.5 (x86_64)
> o Firebird 5.0 (ver. LI-V5.0.1.1469)
> * Both servers are on the same VPC using internal IP addresses to
> communicate each other.
>
>
> Stacktrace:
>
> Local Exception Stack: Exception [EclipseLink-4002] (Eclipse Persistence
> Services - 2.7.9.payara-p2):
> org.eclipse.persistence.exceptions.DatabaseException Internal Exception:
> java.sql.SQLException: BLOB not found [SQLState:HY000, ISC error
> code:335544382] Error Code: 335544382 Call: SELECT *MY_FIELDS* FROM
> *MY_TABLE* WHERE *SOME_CONDITIONS* ORDER BY *FIELD* ASC bind => [XXXX,
> XXXX, 11111111111111, 2025-03-15 23:52:40.145] Query:
> ReadAllQuery(name="*jpaQueryName*" referenceClass=*MyClass* sql="SELECT
> *MY_FIELDS* FROM *MY_TABLE* WHERE *SOME_CONDITIONS* ORDER BY
> *FIELD* ASC") at
> org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:333) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.getObject(DatabaseAccessor.java:1337) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.fetchRow(DatabaseAccessor.java:1083) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.processResultSet(DatabaseAccessor.java:775) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:664) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:567) at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2105) at org.eclipse.persistence.sessions.server.ServerSession.executeCall(ServerSession.java:603) at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:265) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:277) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:263) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:334) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:746) at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2776) at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRows(ExpressionQueryMechanism.java:2729) at org.eclipse.persistence.queries.ReadAllQuery.executeObjectLevelReadQuery(ReadAllQuery.java:584) at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeDatabaseQuery(ObjectLevelReadQuery.java:1232) at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:911) at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1191) at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:485) at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1279) at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:3004) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1898) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1880) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1845) at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:262) at org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:482) at *MyCompanyStackCall* at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.sql.SQLException: BLOB not found [SQLState:HY000, ISC error code:335544382] at org.firebirdsql.gds.ng.FbExceptionBuilder$Type$1.createSQLException(FbExceptionBuilder.java:618) at org.firebirdsql.gds.ng.FbExceptionBuilder.toFlatSQLException(FbExceptionBuilder.java:384) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readStatusVector(AbstractWireOperations.java:154) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readStatusVector(AbstractWireOperations.java:99) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.processOperation(AbstractWireOperations.java:209) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readOperationResponse(AbstractWireOperations.java:175) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readResponse(AbstractWireOperations.java:169) at org.firebirdsql.gds.ng.wire.AbstractWireOperations.readGenericResponse(AbstractWireOperations.java:283) at org.firebirdsql.gds.ng.wire.AbstractFbWireDatabase.readGenericResponse(AbstractFbWireDatabase.java:206) at org.firebirdsql.gds.ng.wire.version10.V10InputBlob.open(V10InputBlob.java:76) at org.firebirdsql.gds.impl.GDSHelper.openBlob(GDSHelper.java:137) at org.firebirdsql.jdbc.FBBlob.openBlob(FBBlob.java:200) at org.firebirdsql.jdbc.FBBlobInputStream.(FBBlobInputStream.java:53) at org.firebirdsql.jdbc.FBBlob.getBinaryStream(FBBlob.java:373) at org.firebirdsql.jdbc.field.FBLongVarCharField.getBytes(FBLongVarCharField.java:125) at org.firebirdsql.jdbc.field.FBLongVarCharField.getString(FBLongVarCharField.java:171) at org.firebirdsql.jdbc.field.FBStringField.getObject(FBStringField.java:79) at org.firebirdsql.jdbc.field.FBLongVarCharField.getObject(FBLongVarCharField.java:44) at org.firebirdsql.jdbc.FBResultSet.getObject(FBResultSet.java:530) at com.sun.gjc.spi.base.ResultSetWrapper.getObject(ResultSetWrapper.java:830) at org.eclipse.persistence.internal.databaseaccess.DatabasePlatform.getObjectFromResultSet(DatabasePlatform.java:1454) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.getObject(DatabaseAccessor.java:1308) ... 36 more Caused by: org.firebirdsql.jdbc.FBSQLExceptionInfo: BLOB not found
--
Mark Rotteveel

Fabio Luis - Vanguarda TI

unread,
Mar 19, 2025, 6:41:16 AMMar 19
to firebi...@googlegroups.com
Hi Mark.

Thanks for the quick response ;-)

No, it doesn't involve any expressions or calculated columns that generate (temporary) blobs.

Unfortunately I don't have a reproducible case, because it happens rarely (some times a week) and this query is run hundreds times a day. It's hard to find a reproducible case because when the problem happens, the same query seconds after works fine.

Most of the time (99,9%) the problem happens on the same table (i have more than 100), i think it's because it's a highly manipulated (read and write) table.

It's a "normal" and basic table:

create table MY_TABLE
(
    FIELD1            VARCHAR(32) not null,
    FIELD2            CHAR(4)     not null,
    FIELD3            CHAR(3)     not null,
    FIELD4            CHAR(6)     not null,
    FIELD5            INTEGER
        constraint FK_MY_TABLE_XYZ
            unique
        constraint FK_MY_TABLE_XYZ
            references TABLE_FIELD5,
    FIELD6            CHAR(1),
    FIELD7            CHAR(1)     not null,
    FIELD8            CHAR(1),
    FIELD9            TIMESTAMP(24),
    FIELD10           VARCHAR(64),
    FIELD11           VARCHAR(15000),
    FIELD12           NUMERIC(10, 3),
    FIELD13           VARCHAR(32765),
    FIELD14           VARCHAR(32),
    FIELD15           VARCHAR(32),
    FIELD16           BLOB SUB_TYPE TEXT(0),
    FIELD17           INTEGER     not null,
    FIELD18           VARCHAR(250),
    FIELD19           VARCHAR(128),
    FIELD20           VARCHAR(25),
    FIELD21           TIMESTAMP(24),
    FIELD22           TIMESTAMP(24),
    FIELD23           BLOB SUB_TYPE TEXT(0),
    constraint FK_MY_TABLE_CADA
        unique (FIELD2, FIELD3, FIELD4),
    constraint FK_MY_TABLE_CADA
        foreign key (FIELD2, FIELD3, FIELD4) references OTHER_TABLE
);

create unique index RDB$PRIMARY10
    on MY_TABLE (FIELD17);

alter table MY_TABLE
    add constraint INTEG_953
        primary key (FIELD17);

Thanks
Fabio Silva


--
Support the ongoing development of Firebird! Consider donating to the Firebird Foundation and help ensure its future. Every contribution makes a difference. Learn more and donate here:
https://www.firebirdsql.org/donate
---
You received this message because you are subscribed to the Google Groups "firebird-java" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebird-jav...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/firebird-java/24041c3d-2294-45c1-9caf-02016c083590%40lawinegevaar.nl.

Mark Rotteveel

unread,
Mar 19, 2025, 7:11:01 AMMar 19
to firebi...@googlegroups.com
On 19/03/2025 11:41, Fabio Luis - Vanguarda TI wrote:
> No, it doesn't involve any expressions or calculated columns that
> generate (temporary) blobs.
>
> Unfortunately I don't have a reproducible case, because it happens
> rarely (some times a week) and this query is run hundreds times a day.
> It's hard to find a reproducible case because when the problem happens,
> the same query seconds after works fine.
>
> Most of the time (99,9%) the problem happens on the same table (i have
> more than 100), i think it's because it's a highly manipulated (read and
> write) table.

That gives a strong suggestion it's a bug in Firebird releasing the blob
before it should under load. However, that is indeed something that is
hard to make reproducible.

> It's a "normal" and basic table:
>
> create table MY_TABLE
> (
[..]
>     FIELD16           BLOB SUB_TYPE TEXT(0),
[..]
>     FIELD23           BLOB SUB_TYPE TEXT(0),

Out of curiosity, how did you obtain this DDL? Because this syntax is
wrong and would result in a Token unknown error. It should be either
`BLOB SUB_TYPE TEXT` (possibly with `SEGMENT SIZE 0` added) or
`BLOB(0,1)` or `BLOB(,1)`.

Mark
--
Mark Rotteveel

Mark Rotteveel

unread,
Mar 19, 2025, 7:48:22 AMMar 19
to firebi...@googlegroups.com
On 19/03/2025 12:10, 'Mark Rotteveel' via firebird-java wrote:
> That gives a strong suggestion it's a bug in Firebird releasing the blob
> before it should under load. However, that is indeed something that is
> hard to make reproducible.

According to Dimitry Sibiryakov on firebird-devel, this is "quite
expected" when you use READ COMMITTED, which is news to me.

In any case, that suggests using the JDBC REPEATABLE READ isolation
level (which maps to Firebird's SNAPSHOT isolation level) should solve
this (but then again, if you need READ COMMITTED visibility, then that
would mean exchanging one problem for another).

Mark
--
Mark Rotteveel

Fabio Luis - Vanguarda TI

unread,
Mar 19, 2025, 10:50:58 AMMar 19
to firebi...@googlegroups.com
Do you think I should fill a bug report in Firebird with this limited information and no reproducible case or is it a waste of time?

For DDL I used "IntelliJ IDEA 2024.3.5 (Ultimate Edition)" with jaybird-5.0.0.java11.jar. Change to jaybird-6.0.0.jar and the output is the same. I think IntelliJ doesn't understand domains. 

Using ISQL the output is:

FIELD16           BLOB_TEXTO,
FIELD23           BLOB_TEXTO,

And the domain BLOB_TEXTO:

CREATE DOMAIN BLOB_TEXTO AS BLOB SUB_TYPE TEXT SEGMENT SIZE 4096;

Kind Regards
Fabio Silva


--
Support the ongoing development of Firebird! Consider donating to the Firebird Foundation and help ensure its future. Every contribution makes a difference. Learn more and donate here:
https://www.firebirdsql.org/donate
---
You received this message because you are subscribed to the Google Groups "firebird-java" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebird-jav...@googlegroups.com.

Mark Rotteveel

unread,
Mar 19, 2025, 1:41:42 PMMar 19
to firebi...@googlegroups.com
On 19/03/2025 15:50, Fabio Luis - Vanguarda TI wrote:
> Do you think I should fill a bug report in Firebird with this limited
> information and no reproducible case or is it a waste of time?

You can always try, but I guess it will just remain open a very long time.

> For DDL I used "IntelliJ IDEA 2024.3.5 (Ultimate Edition)" with
> jaybird-5.0.0.java11.jar. Change to jaybird-6.0.0.jar and the output is
> the same. I think IntelliJ doesn't understand domains.

OK, the Firebird support in IntelliJ is very basic, but Jaybird itself
also doesn't report domains in DatabaseMetaData.getColumns.

I'll see if I can trace if Jaybird maybe reports something wrong there,
and otherwise I'll report a bug to JetBrains

Mark
--
Mark Rotteveel

Fabio Luis - Vanguarda TI

unread,
Mar 19, 2025, 2:08:01 PMMar 19
to firebi...@googlegroups.com
> You can always try, but I guess it will just remain open a very long time.

I'll wait for more clues ;-)

> OK, the Firebird support in IntelliJ is very basic, but Jaybird itself
> also doesn't report domains in DatabaseMetaData.getColumns.

> I'll see if I can trace if Jaybird maybe reports something wrong there,
> and otherwise I'll report a bug to JetBrains

In the past when I was using Windows, I used to use IBExpert, and it was the BEST!

Now (10 years) using Linux I feel orphaned from a DB tool like IBExpert. Do you know some DB tools (even if not free) for linux that approximate IBExpert functionalities? 

Fabio Silva


--
Support the ongoing development of Firebird! Consider donating to the Firebird Foundation and help ensure its future. Every contribution makes a difference. Learn more and donate here:
https://www.firebirdsql.org/donate
---
You received this message because you are subscribed to the Google Groups "firebird-java" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebird-jav...@googlegroups.com.

Mark Rotteveel

unread,
Mar 20, 2025, 4:47:35 AMMar 20
to firebi...@googlegroups.com
On 19/03/2025 19:07, Fabio Luis - Vanguarda TI wrote:
> > OK, the Firebird support in IntelliJ is very basic, but Jaybird itself
> > also doesn't report domains in DatabaseMetaData.getColumns.
> >
> > I'll see if I can trace if Jaybird maybe reports something wrong there,
> > and otherwise I'll report a bug to JetBrains
>
> In the past when I was using Windows, I used to use IBExpert, and it was
> the BEST!
>
> Now (10 years) using Linux I feel orphaned from a DB tool like IBExpert.
> Do you know some DB tools (even if not free) for linux that approximate
> IBExpert functionalities?

Not really, I'm mostly a Windows user myself, and I've actually never
used IB Expert. I primarily use DBeaver for executing queries, or I
fallback to ISQL :). However, I don't use them intensively for database
management.

Have you tried running IB Expert using Wine (https://www.winehq.org/)?

Mark
--
Mark Rotteveel

Fabio Luis - Vanguarda TI

unread,
Mar 20, 2025, 10:47:42 AMMar 20
to firebi...@googlegroups.com
> Not really, I'm mostly a Windows user myself, and I've actually never
> used IB Expert. I primarily use DBeaver for executing queries, or I
> fallback to ISQL :). However, I don't use them intensively for database
> management.

Same here, IntelliJ to execute queries and ISQL for more specific information.


> Have you tried running IB Expert using Wine (https://www.winehq.org/)?

In the past I tried, but many DLL problems occurred, maybe I will try again, thank ;-)


Back in the "BLOB not found", believe or not, I got many times a day (all days) in this week. Is there something that I can do (firebird trace, audit, monitor) to get more data / information to try to find the source of the problem?

I saw there is an old issue in github about that (https://github.com/FirebirdSQL/jaybird/issues/452) and the description is much similar to mine.

Fabio Silva


--
Support the ongoing development of Firebird! Consider donating to the Firebird Foundation and help ensure its future. Every contribution makes a difference. Learn more and donate here:
https://www.firebirdsql.org/donate
---
You received this message because you are subscribed to the Google Groups "firebird-java" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebird-jav...@googlegroups.com.

Mark Rotteveel

unread,
Mar 21, 2025, 4:19:55 AMMar 21
to firebi...@googlegroups.com
On 19/03/2025 15:50, Fabio Luis - Vanguarda TI wrote:
> For DDL I used "IntelliJ IDEA 2024.3.5 (Ultimate Edition)" with
> jaybird-5.0.0.java11.jar. Change to jaybird-6.0.0.jar and the output is
> the same. I think IntelliJ doesn't understand domains.
>
> Using ISQL the output is:
>
> FIELD16           BLOB_TEXTO,
> FIELD23           BLOB_TEXTO,
>
> And the domain BLOB_TEXTO:
>
> CREATE DOMAIN BLOB_TEXTO AS BLOB SUB_TYPE TEXT SEGMENT SIZE 4096;

I reported https://youtrack.jetbrains.com/issue/IDEA-369567 to JetBrains

--
Mark Rotteveel

Mark Rotteveel

unread,
Mar 21, 2025, 4:26:43 AMMar 21
to firebi...@googlegroups.com
On 20/03/2025 15:47, Fabio Luis - Vanguarda TI wrote:
> Back in the "BLOB not found", believe or not, I got many times a day
> (all days) in this week. Is there something that I can do (firebird
> trace, audit, monitor) to get more data / information to try to find the
> source of the problem?

Blob operations aren't traced, and neither are blob garbage collects
logged anywhere (maybe in debug builds?). You may want to ask in
firebird-devel (https://groups.google.com/g/firebird-devel) if there are
tricks for this.

> I saw there is an old issue in github about that (https://github.com/
> FirebirdSQL/jaybird/issues/452 <https://github.com/FirebirdSQL/jaybird/
> issues/452>) and the description is much similar to mine.

Yeah, it was pointed out to me yesterday, but as they haven't seen the
issue in the last few years, it is not reproducible, and because I don't
think it is Jaybird related, I closed it yesterday.

As I mentioned yesterday, changing the transaction isolation level from
TRANSACTION_READ_COMMITTED to TRANSACTION_REPEATABLE_READ might fix the
issue (though if it does, I do think that would point to a problem in
Firebird).

Mark
--
Mark Rotteveel

Fabio Luis - Vanguarda TI

unread,
Mar 21, 2025, 8:28:18 AMMar 21
to firebi...@googlegroups.com
Thanks, I'am following the issue ;-)

Fabio Silva


--
Support the ongoing development of Firebird! Consider donating to the Firebird Foundation and help ensure its future. Every contribution makes a difference. Learn more and donate here:
https://www.firebirdsql.org/donate
---
You received this message because you are subscribed to the Google Groups "firebird-java" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebird-jav...@googlegroups.com.

Fabio Luis - Vanguarda TI

unread,
Mar 21, 2025, 8:29:39 AMMar 21
to firebi...@googlegroups.com
Thanks.

Fabio Silva


--
Support the ongoing development of Firebird! Consider donating to the Firebird Foundation and help ensure its future. Every contribution makes a difference. Learn more and donate here:
https://www.firebirdsql.org/donate
---
You received this message because you are subscribed to the Google Groups "firebird-java" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebird-jav...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages